[ferret-vis] 01/01: Upstream release 7.3

Alastair McKinstry mckinstry at moszumanska.debian.org
Sat Dec 9 08:52:10 UTC 2017


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

mckinstry pushed a commit to tag upstream/7.3
in repository ferret-vis.

commit b335186648f7f0ee99517483803aa0f7cd2eda29
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Sat Dec 9 08:51:10 2017 +0000

    Upstream release 7.3
---
 Makefile                                           |    5 -
 README.md                                          |   25 +
 README_build_ferret                                |    4 +-
 bench/README                                       |   76 -
 bench/README.md                                    |  130 +
 bench/RUN_TESTS.sh                                 |   54 +-
 bench/TEST_SCRIPTS                                 |    4 +
 bench/ansley_official.rhel6-64_err                 |  294 +-
 bench/ansley_official.rhel6-64_log                 | 6924 +++++++++++---------
 bench/bench_environment                            |   14 -
 bench/bench_environment.csh                        |   10 +
 bench/bench_environment.sh                         |   10 +
 bench/bn_modulo_attribute.jnl                      |   11 -
 bench/coads_clim.003                               |  Bin 132536 -> 0 bytes
 .../123456789000101_100101_test_numeric.nc         |  Bin
 .../39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc     |  Bin
 bench/{ => data}/492C19881104.nc                   |  Bin
 bench/{ => data}/6dfile.nc                         |  Bin
 bench/{ => data}/EZ.DAT                            |    0
 bench/{ => data}/TAO_SST_clim.cdf                  |  Bin
 ...estCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc |  Bin
 bench/{ => data}/a1478.nc                          |  Bin
 bench/{ => data}/a_cartesian_bug1179.nc            |  Bin
 bench/{ => data}/adouble.nc                        |  Bin
 bench/{ => data}/adouble_2D.nc                     |  Bin
 bench/{ => data}/aggT_5d1.nc                       |  Bin
 bench/{ => data}/aggT_5d2.nc                       |  Bin
 bench/{ => data}/anew_global.cdl                   |    0
 bench/{ => data}/append_pack.nc                    |  Bin
 bench/{ => data}/axes_subspan.nc                   |  Bin
 bench/{ => data}/b1478.nc                          |  Bin
 bench/{ => data}/bad_taxis.nc                      |  Bin
 bench/{ => data}/badbounds.nc                      |  Bin
 bench/{ => data}/badbounds_even.nc                 |  Bin
 bench/{ => data}/badbounds_non_enclose.nc          |  Bin
 bench/{ => data}/badbounds_uneven.nc               |  Bin
 bench/{ => data}/bn_delimited_read_1.dat           |    0
 bench/{ => data}/bn_delimited_read_2.dat           |    0
 bench/{ => data}/bn_delimited_read_CO2.dat         |    0
 bench/{ => data}/bn_delimited_read_date_time.dat   |    0
 bench/{ => data}/bn_set_axis_regular.nc            |  Bin
 bench/{ => data}/bn_strides.cdf                    |  Bin
 bench/{ => data}/bn_strides.cdl                    |    0
 bench/{ => data}/bounds_noenclose.nc               |  Bin
 bench/{ => data}/bounds_overlapping.nc             |  Bin
 bench/{ => data}/bug1421_a.nc                      |  Bin
 bench/{ => data}/bug1421_b.nc                      |  Bin
 bench/{ => data}/bug1845.nc                        |  Bin
 bench/{ => data}/bug2445.nc                        |  Bin
 bench/{ => data}/bug_save_subset.nc                |  Bin
 bench/{ => data}/byte.dat                          |  Bin
 bench/{ => data}/byteSwapped.dat                   |  Bin
 bench/{ => data}/cc_irreg.nc                       |  Bin
 bench/{ => data}/clim_airt_lev.cdf                 |  Bin
 bench/{ => data}/climatological_axes.cdf           |  Bin
 bench/{ => data}/co_emac.nc                        |  Bin
 bench/{ => data}/coads_clim.001                    |  Bin
 bench/{ => data}/coads_clim.002                    |  Bin
 bench/data/coads_clim.003                          |  Bin 0 -> 132528 bytes
 bench/{ => data}/coads_clim.003b                   |  Bin
 bench/{ => data}/coads_clim.1000                   |  Bin
 bench/{ => data}/coads_clim.1001                   |  Bin
 bench/{ => data}/coads_clim.999                    |  Bin
 bench/{ => data}/coads_clim.des                    |    0
 bench/{ => data}/coads_clim_4digit.des             |    0
 bench/{ => data}/coads_clim_bad_delta.des          |    0
 bench/{ => data}/coads_clim_irreg.des              |    0
 bench/{ => data}/coads_clim_missing_step1.des      |    0
 bench/{ => data}/coads_clim_missing_stepN.des      |    0
 bench/{ => data}/coads_clim_step_order.des         |    0
 bench/{ => data}/coads_climatology.cdf             |  Bin
 bench/{ => data}/coads_slice.nc                    |  Bin
 bench/{ => data}/coads_uw.nc                       |  Bin
 bench/{ => data}/coads_vwnd.cdf                    |  Bin
 bench/{ => data}/conventions_history_in.nc         |  Bin
 bench/{ => data}/dates_bug.dat                     |    0
 bench/{ => data}/degrees.nc                        |  Bin
 bench/{ => data}/delim_datetime.csv                |    0
 bench/{ => data}/delim_prec.dat                    |    0
 bench/{ => data}/delim_yyyy.csv                    |    0
 bench/{ => data}/des.mc                            |    0
 bench/{ => data}/des.my_descriptor                 |    0
 bench/{ => data}/dims_not_coord.nc                 |  Bin
 bench/{ => data}/double.dat                        |  Bin
 bench/{ => data}/doubleSwapped.dat                 |  Bin
 bench/{ => data}/dsg.nc                            |  Bin
 bench/{ => data}/dstitle.nc                        |  Bin
 bench/{ => data}/duplicate.cdf                     |  Bin
 bench/{ => data}/duplicate.des                     |    0
 bench/{ => data}/duplicate.nc                      |  Bin
 bench/{ => data}/edge.nc                           |  Bin
 bench/{ => data}/ens1.nc                           |  Bin
 bench/{ => data}/ens2.nc                           |  Bin
 bench/{ => data}/ens3.nc                           |  Bin
 bench/{ => data}/ens4.nc                           |  Bin
 bench/{ => data}/epic_formatted_file.nc            |  Bin
 bench/{ => data}/err491_attval.cdf                 |  Bin
 bench/{ => data}/err542_poly_over_calendar.nc      |  Bin
 bench/{ => data}/err600_upcase.nc                  |  Bin
 bench/{ => data}/err608_bug1556.nc                 |  Bin
 bench/{ => data}/err62_string_write.nc             |  Bin
 bench/{ => data}/err64_packed_data.nc              |  Bin
 bench/{ => data}/err64_small_latlon.nc             |  Bin
 bench/{ => data}/err67_axis_order.nc               |  Bin
 bench/{ => data}/err682_scale_no_offset.nc         |  Bin
 bench/{ => data}/err684_packed_output.nc           |  Bin
 bench/{ => data}/err693_save_packed.nc             |  Bin
 bench/{ => data}/err700_coords.nc                  |  Bin
 bench/{ => data}/err700_vs_data.nc                 |  Bin
 bench/data/err721_ascii_size.dat                   |    4 +
 bench/data/err721_dup_labels.nc                    |  Bin 0 -> 4048 bytes
 bench/{ => data}/err_calendar.nc                   |  Bin
 bench/{ => data}/euro_dates_bug.dat                |    0
 bench/{ => data}/fill_value_int.nc                 |  Bin
 bench/{ => data}/finale.dat                        |  Bin
 bench/{ => data}/fine_x_axis.nc                    |  Bin
 bench/{ => data}/float.dat                         |  Bin
 bench/{ => data}/floatSwapped.dat                  |  Bin
 bench/{ => data}/forecast24.nc                     |  Bin
 bench/{ => data}/forecast25.nc                     |  Bin
 bench/{ => data}/forecast26.nc                     |  Bin
 bench/{ => data}/forecast27.nc                     |  Bin
 bench/{ => data}/ft_cal_mixed.nc                   |  Bin
 bench/{ => data}/ft_cal_one.nc                     |  Bin
 bench/{ => data}/fxdata.dat                        |    0
 bench/{ => data}/gappy_bounds.nc                   |  Bin
 bench/{ => data}/geo_borders.cdf                   |  Bin
 bench/{ => data}/global.nc                         |  Bin
 bench/{ => data}/grads_bug_file.nc                 |  Bin
 bench/{ => data}/gt160w011_nts30.des               |    0
 bench/{ => data}/gt4d011.cdf                       |  Bin
 bench/{ => data}/gtbc011.cdf                       |  Bin
 bench/{ => data}/gtsa056_1.cdf                     |  Bin
 bench/{ => data}/gtsa056_1_ef.nc                   |  Bin
 bench/{ => data}/gtsa056_2.cdf                     |  Bin
 bench/data/heat_00.nc                              |  Bin 0 -> 44700 bytes
 bench/data/heat_01.nc                              |  Bin 0 -> 44706 bytes
 bench/data/heat_0a.nc                              |  Bin 0 -> 1568 bytes
 bench/data/heat_0b.nc                              |  Bin 0 -> 1596 bytes
 bench/{ => data}/hourst.nc                         |  Bin
 bench/{ => data}/illeg_axname.nc                   |  Bin
 bench/{ => data}/int.dat                           |  Bin
 bench/{ => data}/intSwapped.dat                    |  Bin
 bench/{ => data}/latestOb.nc                       |  Bin
 bench/{ => data}/lev_rev_up.nc                     |  Bin
 bench/{ => data}/lev_v_bug.nc                      |  Bin
 bench/{ => data}/levitus_3d_subset.nc              |  Bin
 bench/{ => data}/levitus_climatology.cdf           |  Bin
 bench/{ => data}/longtitle1000.nc                  |  Bin
 bench/{ => data}/longvarnames.tsv                  |    0
 bench/{ => data}/lowercaseTime.nc                  |  Bin
 bench/{ => data}/maize_1.nc                        |  Bin
 bench/{ => data}/maize_2.nc                        |  Bin
 bench/{ => data}/maize_3.nc                        |  Bin
 bench/{ => data}/mc_test.des                       |    0
 bench/{ => data}/missing_scale_off.nc              |  Bin
 bench/{ => data}/modax.nc                          |  Bin
 bench/{ => data}/modfalse.nc                       |  Bin
 bench/{ => data}/modulo_lon_time.nc                |  Bin
 bench/{ => data}/mylon.nc                          |  Bin
 bench/{ => data}/nan_missing.nc                    |  Bin
 bench/{ => data}/navy_uw.nc                        |  Bin
 bench/{ => data}/nc5d.nc                           |  Bin
 bench/{ => data}/no_miss_att.nc                    |  Bin
 bench/{ => data}/nodim.nc                          |  Bin
 bench/{ => data}/noglobalhistory.nc                |  Bin
 bench/{ => data}/non_COARDS.cdf                    |  Bin
 bench/{ => data}/non_COARDS.cdl                    |    0
 bench/{ => data}/numstring.nc                      |  Bin
 bench/{ => data}/ocean_atlas_temp.cdf              |  Bin
 bench/{ => data}/proleptic_gregorian.nc            |  Bin
 bench/{ => data}/repeat_t_coord.nc                 |  Bin
 bench/{ => data}/reverse_axes.cdf                  |  Bin
 bench/{ => data}/reverse_z_bnds.nc                 |  Bin
 bench/{ => data}/run1.nc                           |  Bin
 bench/{ => data}/run2.nc                           |  Bin
 bench/{ => data}/run3.nc                           |  Bin
 bench/{ => data}/run4.nc                           |  Bin
 bench/{ => data}/scat2grid.nc                      |  Bin
 bench/{ => data}/short.dat                         |  Bin
 bench/{ => data}/shortSwapped.dat                  |  Bin
 bench/{ => data}/shorttemp.nc                      |  Bin
 bench/{ => data}/shorttest.dat                     |    0
 bench/{ => data}/skip.dat                          |  Bin
 bench/{ => data}/ss_small.nc                       |  Bin
 bench/{ => data}/sstnok_short.nc                   |  Bin
 bench/{ => data}/sstok_short.nc                    |  Bin
 bench/{ => data}/strdimfile.nc                     |  Bin
 bench/{ => data}/stream10by5_i386-apple-darwin.unf |  Bin
 bench/{ => data}/stream10by5_ia64-linux.unf        |  Bin
 bench/{ => data}/stream10by5_ia64-sles9.unf        |  Bin
 bench/{ => data}/stream10by5_linux.unf             |  Bin
 bench/{ => data}/stream10by5_x86_64-darwin.unf     |  Bin
 bench/{ => data}/stream10by5_x86_64-linux.unf      |  Bin
 bench/{ => data}/string5d.nc                       |  Bin
 bench/{ => data}/test0.nc                          |  Bin
 bench/{ => data}/test_axes.nc                      |  Bin
 bench/{ => data}/test_nan.nc                       |  Bin
 bench/{ => data}/test_save_dsg_in.nc               |  Bin
 bench/{ => data}/time_axis_seconds.nc              |  Bin
 bench/{ => data}/timemissing.nc                    |  Bin
 bench/{ => data}/timesec.nc                        |  Bin
 bench/{ => data}/tnok_short.des                    |    0
 bench/{ => data}/tok_short.des                     |    0
 bench/{ => data}/toolong.nc                        |  Bin
 bench/{ => data}/trajectory_trajectory_name.nc     |  Bin
 bench/{ => data}/tripolar_subset.nc                |  Bin
 bench/{ => data}/truemonth.nc                      |  Bin
 bench/{ => data}/twoType.dat                       |  Bin
 bench/{ => data}/twodtime.nc                       |  Bin
 bench/{ => data}/uncentered.nc                     |  Bin
 bench/{ => data}/vary_scale.des                    |    0
 bench/{ => data}/varyscale_1.nc                    |  Bin
 bench/{ => data}/varyscale_2.nc                    |  Bin
 bench/{ => data}/weird_name1.cdf                   |  Bin
 bench/{ => data}/write_int_att.nc                  |  Bin
 bench/{ => data}/xsz.nc                            |  Bin
 bench/{ => data}/xz_nozattrib.nc                   |  Bin
 bench/{ => data}/z_wide_variation.nc               |  Bin
 bench/ferret_startup                               |    2 +-
 bench/{ => genjnls}/bench_add_9.jnl                |    0
 bench/{ => genjnls}/bench_avet.jnl                 |    0
 bench/{ => genjnls}/bench_examples.jnl             |    0
 bench/{ => genjnls}/bench_pass_thru.jnl            |    0
 bench/{ => genjnls}/bench_storage.jnl              |    0
 bench/{ => genjnls}/bench_subtract.jnl             |    0
 bench/{ => genjnls}/bn_all.jnl                     |   16 +-
 bench/{ => genjnls}/bn_all_ef.jnl                  |    0
 bench/{ => genjnls}/bn_all_ef_shell.jnl            |    0
 bench/{ => genjnls}/bn_all_shell.jnl               |    0
 bench/{ => genjnls}/bn_batch_metafile.jnl          |    0
 bench/{ => genjnls}/bn_batch_metafile_shell.jnl    |    0
 bench/{ => genjnls}/bn_ef_external_functions.jnl   |    0
 bench/{ => genjnls}/bn_external_functions.jnl      |    0
 bench/{ => genjnls}/bn_fcn_calls.jnl               |    0
 bench/{ => genjnls}/bn_gif.jnl                     |    0
 bench/{ => genjnls}/bn_gif_shell.jnl               |    0
 bench/{ => genjnls}/bn_hovmuller_overlays.jnl      |    0
 bench/{ => genjnls}/bn_labels_on_taxis.jnl         |    0
 bench/{ => genjnls}/bn_ps.jnl                      |    0
 bench/{ => genjnls}/bn_ps_shell.jnl                |    0
 bench/{ => genjnls}/bn_reset.jnl                   |    1 +
 bench/{ => genjnls}/bn_startupfile.jnl             |    0
 bench/{ => genjnls}/bn_startupfile_shell.jnl       |    0
 bench/{ => genjnls}/ddsg_socat3.jnl                |    0
 bench/metafile_masters_64bit_rh6/bat.plt_6         |   26 +-
 bench/metafile_masters_64bit_rh6/bnplot-3.plt      |    6 +-
 bench/metafile_masters_64bit_rh6/bnplot-4.plt      |  838 +--
 .../multi_line_labels.plt                          |   67 +-
 bench/run_all                                      |   39 +-
 bench/test_results/bn_axis_vs.gif                  |  Bin 6645 -> 6645 bytes
 bench/test_results/bn_contour_conset.gif           |  Bin 17361 -> 17361 bytes
 bench/test_results/bn_hovmuller_overlays.gif       |  Bin 51920 -> 51920 bytes
 bench/test_results/bn_labels_on_taxis.gif          |  Bin 35123 -> 35123 bytes
 bench/test_results/bn_ribbon_vlog.gif              |  Bin 12468 -> 12468 bytes
 bench/test_results/bn_subspan_mod_strides.gif      |  Bin 24061 -> 24061 bytes
 bench/test_results/bn_vs_const_value.gif           |  Bin 10917 -> 10917 bytes
 bench/test_results/bnplot_2.gif                    |  Bin 56113 -> 56113 bytes
 bench/test_results/bnplot_3.gif                    |  Bin 27755 -> 27755 bytes
 bench/test_results/err700_key.gif                  |  Bin 32596 -> 32596 bytes
 bench/test_results/ferret_run_tests_err            |  233 +-
 bench/test_results/ferret_run_tests_log            | 3982 ++++++-----
 bench/test_results/ferret_run_tests_ncdump         |  146 +-
 bench/test_results/forecast_actual.gif             |  Bin 15839 -> 15839 bytes
 bench/test_results/forecast_diagview.gif           |  Bin 14385 -> 14385 bytes
 bench/test_results/forecast_leadview.gif           |  Bin 12293 -> 12293 bytes
 bench/test_results/gif_dashbug.gif                 |  Bin 1625 -> 1625 bytes
 bench/test_results/legend_1d_plots.gif             |  Bin 10422 -> 10422 bytes
 bench/test_results/levels_one_level.gif            |  Bin 17452 -> 17452 bytes
 bench/test_results/lon_lat_label_controls.gif      |  Bin 10898 -> 10898 bytes
 bench/test_results/testbackground.gif              |  Bin 46738 -> 46738 bytes
 bench/test_results/vs_lon_over.gif                 |  Bin 11380 -> 11380 bytes
 bench/{ => unused}/NORM_CDF.DAT                    |  Bin
 bench/{ => unused}/bench_add_9_visual.jnl          |    0
 bench/{ => unused}/bench_avet_visual.jnl           |    0
 bench/{ => unused}/bench_extrema.jnl               |    0
 bench/{ => unused}/bench_fft_visual.jnl            |    0
 bench/{ => unused}/bench_gridding_visual.jnl       |    0
 bench/{ => unused}/bench_pass_thru_visual.jnl      |    0
 bench/{ => unused}/bench_sorti_visual.jnl          |    0
 bench/{ => unused}/bench_sortj_visual.jnl          |    0
 bench/{ => unused}/bench_sortk_visual.jnl          |    0
 bench/{ => unused}/bench_sortl_visual.jnl          |    0
 bench/{ => unused}/bench_storage_visual.jnl        |    0
 bench/{ => unused}/bench_subtract_visual.jnl       |    0
 bench/{ => unused}/bn301_mem_mgmt.jnl              |    0
 bench/{ => unused}/bn_1d_gather.jnl                |    0
 bench/{ => unused}/bn_all_dods.jnl                 |    0
 bench/{ => unused}/bn_appende.jnl                  |    0
 bench/{ => unused}/bn_ax_attrib.jnl                |    0
 bench/{ => unused}/bn_dods_strides.jnl             |    0
 bench/{ => unused}/bn_encode_url.jnl               |    0
 bench/{ => unused}/bn_gather_4d_ave.jnl            |    0
 bench/{ => unused}/bn_gather_4d_din.jnl            |    0
 bench/{ => unused}/bn_gather_4d_var.jnl            |    0
 bench/{ => unused}/bn_keep_axnames.jnl             |    0
 bench/{ => unused}/bn_mn_fcns.jnl                  |    0
 bench/{ => unused}/bn_nco_functions.jnl            |    0
 bench/{ => unused}/bn_packed_coordinates.jnl       |    0
 bench/{ => unused}/bn_ppl_errors.jnl               |    0
 bench/{ => unused}/bn_samplexz.jnl                 |    0
 bench/{ => unused}/bn_sampleyz.jnl                 |    0
 bench/{ => unused}/bn_sho_att_longnames.jnl        |    0
 bench/{ => unused}/bn_warn_subspan.jnl             |    0
 bench/{ => unused}/bn_zaxr_fcns.jnl                |    0
 bench/{ => unused}/err491_cdf_childax.jnl          |    0
 bench/{ => unused}/err491_days1900.jnl             |    0
 bench/{ => unused}/err491_gt_syntax.jnl            |    0
 bench/{ => unused}/err491_interp.jnl               |    0
 bench/{ => unused}/err491_mc.jnl                   |    0
 bench/{ => unused}/err491_reshape_limits.jnl       |    0
 bench/{ => unused}/err491_shade_lev_roundoff.jnl   |    0
 bench/{ => unused}/err491_zaxreplace.jnl           |    0
 bench/{ => unused}/err500_logcontour.jnl           |    0
 bench/{ => unused}/err580_def_t_norange.jnl        |    0
 bench/{ => unused}/err684_cancel_att.jnl           |    0
 bench/{ => unused}/err693_check_edges.jnl          |    0
 bench/{ => unused}/err69_if_then_split.jnl         |    0
 bench/{ => unused}/err69_repeat_in_if.jnl          |    0
 bench/{ => unused}/objective.jnl                   |    0
 bench/{ => unused}/outside_the_lines.jnl           |    0
 bench/{ => unused}/run_all.sh                      |    0
 bench/{ => unused}/test                            |    0
 bench/{ => v4jnls}/bn491_bug_fixes.jnl             |    0
 bench/{ => v4jnls}/bn_axis_limits.jnl              |    0
 bench/{ => v4jnls}/bn_axis_limits.sub1             |    0
 bench/{ => v4jnls}/bn_axis_limits.sub2             |    0
 bench/{ => v4jnls}/bn_cdf.jnl                      |    0
 bench/{ => v4jnls}/bn_cdf.sub1                     |    0
 bench/{ => v4jnls}/bn_cdf.sub2                     |    0
 bench/{ => v4jnls}/bn_cdf.sub3                     |    0
 bench/{ => v4jnls}/bn_cdf.sub4                     |    0
 bench/{ => v4jnls}/bn_cdf_reversed.sub             |    0
 bench/{ => v4jnls}/bn_comma_delimited.jnl          |    0
 bench/{ => v4jnls}/bn_comma_delimited.sub          |    0
 bench/{ => v4jnls}/bn_compress.jnl                 |    0
 bench/{ => v4jnls}/bn_compress.sub_v               |    0
 bench/{ => v4jnls}/bn_curv.jnl                     |    0
 bench/{ => v4jnls}/bn_dollar.jnl                   |    0
 bench/{ => v4jnls}/bn_dollar.sub                   |    0
 bench/{ => v4jnls}/bn_dynamic_grids.jnl            |    0
 bench/{ => v4jnls}/bn_expressions.jnl              |    0
 bench/{ => v4jnls}/bn_ez.jnl                       |    0
 bench/{ => v4jnls}/bn_ez_order.jnl                 |    0
 bench/{ => v4jnls}/bn_gc_functions.jnl             |    0
 bench/{ => v4jnls}/bn_geometry.jnl                 |    0
 bench/{ => v4jnls}/bn_geometry.sub                 |    0
 bench/{ => v4jnls}/bn_grave.jnl                    |    0
 bench/{ => v4jnls}/bn_if.jnl                       |    0
 bench/{ => v4jnls}/bn_if.sub                       |    0
 bench/{ => v4jnls}/bn_in_plane.jnl                 |    0
 bench/{ => v4jnls}/bn_in_plane.sub                 |    0
 bench/{ => v4jnls}/bn_interpolate.jnl              |    0
 bench/{ => v4jnls}/bn_interpolate.sub              |    0
 bench/{ => v4jnls}/bn_letd.jnl                     |    0
 bench/{ => v4jnls}/bn_mc.jnl                       |    0
 bench/{ => v4jnls}/bn_movie.jnl                    |    0
 bench/{ => v4jnls}/bn_mp_zoo.jnl                   |    0
 bench/{ => v4jnls}/bn_negative_t.jnl               |    0
 bench/{ => v4jnls}/bn_negative_t.sub               |    0
 bench/{ => v4jnls}/bn_output.jnl                   |    0
 bench/{ => v4jnls}/bn_output.sub                   |    0
 bench/{ => v4jnls}/bn_plot.jnl                     |    0
 bench/{ => v4jnls}/bn_regrid.jnl                   |    0
 bench/{ => v4jnls}/bn_regrid.sub                   |    0
 bench/{ => v4jnls}/bn_regrid_transforms.jnl        |    0
 bench/{ => v4jnls}/bn_stream.jnl                   |    0
 bench/{ => v4jnls}/bn_symbols.jnl                  |    0
 bench/{ => v4jnls}/bn_syntax.jnl                   |    2 +-
 bench/{ => v4jnls}/bn_user.jnl                     |    0
 bench/{ => v4jnls}/bn_xact_regrid.jnl              |    0
 bench/{ => v4jnls}/bn_xact_regrid.sub              |    0
 bench/{ => v4jnls}/err490_cdf_childax.jnl          |    0
 bench/{ => v4jnls}/err490_command_parser.jnl       |    0
 bench/{ => v4jnls}/err490_fixed_var_size.jnl       |    0
 bench/{ => v4jnls}/err490_l_ave.jnl                |    0
 bench/{ => v4jnls}/err490_neg_time_show_grid.jnl   |    0
 bench/{ => v4jnls}/err490_repeat_first_echo.jnl    |    0
 bench/{ => v4jnls}/err490_tilde.jnl                |    0
 bench/{ => v4jnls}/err491_RESHAPE_ctx.jnl          |    0
 bench/{ => v4jnls}/err491_asn.jnl                  |    0
 bench/{ => v4jnls}/err491_attrib_dp.jnl            |    0
 bench/{ => v4jnls}/err491_delete_child_var.jnl     |    0
 bench/{ => v4jnls}/err491_dp_time_write.jnl        |    0
 bench/{ => v4jnls}/err491_explicit_limits.jnl      |    0
 bench/{ => v4jnls}/err491_gmax.jnl                 |    0
 bench/{ => v4jnls}/err491_grid_from_name.jnl       |    0
 bench/{ => v4jnls}/err491_let_d.jnl                |    0
 bench/{ => v4jnls}/err491_long_gif_name.jnl        |    0
 bench/{ => v4jnls}/err491_sh_var_templates.jnl     |    0
 bench/{ => v4jnls}/err491_single_char_replace.jnl  |    0
 bench/{ => v4jnls}/err491_spawn_quotes.jnl         |    0
 bench/{ => v4jnls}/err491_time_regridding.jnl      |    0
 bench/{ => v4jnls}/err491_unknown_function.jnl     |    0
 bench/{ => v5jnls}/bench_compress.jnl              |    0
 bench/{ => v5jnls}/bench_compress_by.jnl           |    0
 bench/{ => v5jnls}/bench_eof.jnl                   |    3 +-
 bench/{ => v5jnls}/bench_fft.jnl                   |    0
 bench/{ => v5jnls}/bench_gridding.jnl              |    0
 .../bench_internal_string_functions.jnl            |    0
 bench/{ => v5jnls}/bench_samplet_date.jnl          |    0
 bench/{ => v5jnls}/bench_samplexy.jnl              |    0
 bench/{ => v5jnls}/bench_sort.jnl                  |    0
 bench/{ => v5jnls}/bench_sorti.jnl                 |    0
 bench/{ => v5jnls}/bench_sortj.jnl                 |    0
 bench/{ => v5jnls}/bench_sortk.jnl                 |    0
 bench/{ => v5jnls}/bench_sortl.jnl                 |    0
 bench/{ => v5jnls}/bn500_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn541_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn542_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn550_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn551_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn552_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn553_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn554_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn570_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn580_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn581_bug_fixes.jnl             |    0
 bench/{ => v5jnls}/bn_abstract_axis_names.jnl      |    0
 bench/{ => v5jnls}/bn_all_leap.jnl                 |    0
 bench/{ => v5jnls}/bn_axcontrol.jnl                |    0
 bench/{ => v5jnls}/bn_axis_viewports.jnl           |    0
 bench/{ => v5jnls}/bn_bounds.jnl                   |    0
 bench/{ => v5jnls}/bn_cache_hits.jnl               |    0
 bench/{ => v5jnls}/bn_cache_hits.sub               |    0
 bench/{ => v5jnls}/bn_cache_hits_gcfcn.sub         |    0
 bench/{ => v5jnls}/bn_calendar.jnl                 |    0
 bench/{ => v5jnls}/bn_cancel_axes.jnl              |    0
 bench/{ => v5jnls}/bn_cancel_axes_1.sub            |    0
 bench/{ => v5jnls}/bn_cancel_axes_2.sub            |    0
 bench/{ => v5jnls}/bn_curv_mod.jnl                 |    0
 bench/{ => v5jnls}/bn_dash_dot.jnl                 |    0
 bench/{ => v5jnls}/bn_define_axes.jnl              |    0
 bench/{ => v5jnls}/bn_delimited_read.jnl           |    8 +-
 bench/{ => v5jnls}/bn_dots.jnl                     |    0
 bench/{ => v5jnls}/bn_ef_bench_extrema.jnl         |    0
 bench/{ => v5jnls}/bn_ef_curv_to_rect.jnl          |    0
 bench/{ => v5jnls}/bn_ef_err541_date_delim.jnl     |    0
 bench/{ => v5jnls}/bn_ef_zaxr_fcns.jnl             |    0
 bench/{ => v5jnls}/bn_eof_4d.jnl                   |    3 +-
 bench/{ => v5jnls}/bn_exit_cycle.jnl               |    0
 bench/{ => v5jnls}/bn_exit_script.jnl              |    0
 bench/{ => v5jnls}/bn_fill_irregular.jnl           |    0
 bench/{ => v5jnls}/bn_flowlines.jnl                |    0
 bench/{ => v5jnls}/bn_graticules.jnl               |    0
 bench/{ => v5jnls}/bn_illegal_axisname.jnl         |    0
 bench/{ => v5jnls}/bn_inf_levels.jnl               |    0
 .../bn_internal_external_functions.jnl             |    0
 bench/{ => v5jnls}/bn_labwid.jnl                   |    0
 bench/{ => v5jnls}/bn_lev_symbols.jnl              |    0
 bench/{ => v5jnls}/bn_logaxes.jnl                  |    0
 bench/{ => v5jnls}/bn_longvarnames.jnl             |    0
 bench/{ => v5jnls}/bn_many_polygons.jnl            |    0
 bench/{ => v5jnls}/bn_mc_vary_scale.jnl            |    0
 bench/{ => v5jnls}/bn_mode_logo_lab.jnl            |    0
 bench/{ => v5jnls}/bn_modstats.jnl                 |    0
 bench/v5jnls/bn_modulo_attribute.jnl               |   10 +
 bench/{ => v5jnls}/bn_modulo_strides.jnl           |    0
 bench/{ => v5jnls}/bn_multi_line_labels.jnl        |    0
 bench/{ => v5jnls}/bn_non_COARDS_netCDF.jnl        |    0
 bench/{ => v5jnls}/bn_odd_variable_name.jnl        |    0
 bench/{ => v5jnls}/bn_pattern.jnl                  |    0
 bench/{ => v5jnls}/bn_plot_nokey.jnl               |    0
 bench/{ => v5jnls}/bn_polygon.jnl                  |    0
 bench/{ => v5jnls}/bn_redefine_taxis_mc.jnl        |    0
 bench/{ => v5jnls}/bn_regrid_to_user.jnl           |    0
 bench/{ => v5jnls}/bn_regulart.jnl                 |    0
 bench/{ => v5jnls}/bn_repeat_range.jnl             |    0
 bench/{ => v5jnls}/bn_reset_attributes.jnl         |    0
 bench/{ => v5jnls}/bn_sample.jnl                   |    0
 bench/{ => v5jnls}/bn_samplexy_sampleij.jnl        |    0
 bench/{ => v5jnls}/bn_scat2grid_gl.jnl             |    0
 bench/{ => v5jnls}/bn_scat2grid_nobs.jnl           |    0
 bench/{ => v5jnls}/bn_scat2grid_t.jnl              |    0
 bench/{ => v5jnls}/bn_scat2grid_test.jnl           |    0
 .../{ => v5jnls}/bn_scat2gridlaplace_tarasoff.jnl  |    0
 bench/{ => v5jnls}/bn_set_var_scale_off.jnl        |    0
 bench/{ => v5jnls}/bn_shade_keycont.jnl            |    0
 bench/{ => v5jnls}/bn_shakey.jnl                   |    0
 bench/{ => v5jnls}/bn_strides_revs_perms.jnl       |    0
 bench/{ => v5jnls}/bn_strings.jnl                  |    0
 bench/{ => v5jnls}/bn_subspan_modulo.jnl           |    0
 bench/{ => v5jnls}/bn_subspan_modulo.sub1          |    0
 bench/{ => v5jnls}/bn_subspan_modulo.sub2          |    0
 bench/{ => v5jnls}/bn_test_nan.jnl                 |    0
 bench/{ => v5jnls}/bn_test_stream_big.jnl          |    0
 bench/{ => v5jnls}/bn_test_stream_little.jnl       |    0
 bench/{ => v5jnls}/bn_transpose.jnl                |    0
 bench/{ => v5jnls}/bn_unique_str2int.jnl           |    0
 bench/{ => v5jnls}/bn_vec_curv.jnl                 |    0
 bench/{ => v5jnls}/bn_xml_output.jnl               |    0
 bench/{ => v5jnls}/err500_IF_THEN_ELSE_quote.jnl   |    0
 bench/{ => v5jnls}/err540_ax_ave.jnl               |    0
 bench/{ => v5jnls}/err540_axis_symbols.jnl         |    0
 bench/{ => v5jnls}/err540_axset.jnl                |    0
 bench/{ => v5jnls}/err540_cd_use_recdim.jnl        |    0
 bench/{ => v5jnls}/err540_data_type.jnl            |    0
 bench/{ => v5jnls}/err540_dods_bad_dataset.jnl     |    0
 bench/{ => v5jnls}/err540_dods_bad_strides.jnl     |    0
 bench/{ => v5jnls}/err540_ill_format.jnl           |    0
 bench/{ => v5jnls}/err540_modscat.jnl              |    0
 bench/{ => v5jnls}/err540_parse_repeat.jnl         |    0
 bench/{ => v5jnls}/err540_poly_overlay.jnl         |    0
 bench/{ => v5jnls}/err540_polymissing.jnl          |    0
 bench/{ => v5jnls}/err540_samplexy_missing.jnl     |    0
 bench/{ => v5jnls}/err540_strides_rev.jnl          |    0
 bench/{ => v5jnls}/err540_use.jnl                  |    0
 bench/{ => v5jnls}/err540_vs_dash.jnl              |    0
 bench/{ => v5jnls}/err540_write_order.jnl          |    0
 bench/{ => v5jnls}/err541_cancel_axes.jnl          |    0
 bench/{ => v5jnls}/err541_date_delim.jnl           |    0
 bench/{ => v5jnls}/err541_fill_tics.jnl            |    0
 bench/{ => v5jnls}/err541_non_gregorian.jnl        |    0
 bench/{ => v5jnls}/err541_string4d.jnl             |    0
 bench/{ => v5jnls}/err542_poly_over_calendar.jnl   |    0
 .../{ => v5jnls}/err550_define_axis_expression.jnl |    0
 bench/{ => v5jnls}/err550_dots_thickpens.jnl       |    0
 bench/{ => v5jnls}/err550_nc_seconds.jnl           |    2 +-
 .../{ => v5jnls}/err550_redefine_calendar_axis.jnl |    0
 bench/{ => v5jnls}/err550_shade_limits.jnl         |    0
 bench/{ => v5jnls}/err550_view_axes_fill.jnl       |    0
 bench/{ => v5jnls}/err550_view_axes_position.jnl   |    0
 bench/{ => v5jnls}/err551_2dave.jnl                |    0
 bench/{ => v5jnls}/err551_axes_set.jnl             |    0
 bench/{ => v5jnls}/err551_colorkey.jnl             |    0
 bench/{ => v5jnls}/err551_fft_freqaxis.jnl         |    0
 bench/{ => v5jnls}/err551_invalid_calendar.jnl     |    0
 bench/{ => v5jnls}/err551_modulo_nc_regrid.jnl     |    0
 bench/{ => v5jnls}/err551_no_taxis_errmsg.jnl      |    0
 bench/{ => v5jnls}/err551_num_levels.jnl           |    0
 bench/{ => v5jnls}/err551_regrid_undef_grid.jnl    |    0
 bench/{ => v5jnls}/err551_repeat_sym.jnl           |    0
 bench/{ => v5jnls}/err551_return_message.jnl       |    0
 bench/{ => v5jnls}/err551_streamread_directory.jnl |    0
 bench/{ => v5jnls}/err551_strings.jnl              |    0
 bench/{ => v5jnls}/err553_axis_too_long.jnl        |    0
 bench/{ => v5jnls}/err553_contour_fine_grid.jnl    |    0
 bench/{ => v5jnls}/err553_lev_c.jnl                |    0
 bench/{ => v5jnls}/err553_list_string_numeric.jnl  |    0
 bench/{ => v5jnls}/err553_list_width.jnl           |    0
 bench/{ => v5jnls}/err553_lon_ax_0_label.jnl       |    0
 bench/{ => v5jnls}/err553_long_string_var_name.jnl |    0
 bench/{ => v5jnls}/err553_numeric_filename.jnl     |    0
 bench/{ => v5jnls}/err553_regionname_lengths.jnl   |    0
 bench/{ => v5jnls}/err553_set_axis_depth.jnl       |    0
 bench/{ => v5jnls}/err553_shakey_labels.jnl        |    0
 bench/{ => v5jnls}/err553_stride_def_grid.jnl      |    0
 bench/{ => v5jnls}/err553_stride_modulo.jnl        |    0
 bench/{ => v5jnls}/err553_symbol_lev.jnl           |    0
 bench/{ => v5jnls}/err553_symsize.jnl              |    0
 bench/{ => v5jnls}/err553_timeregion.jnl           |    0
 bench/{ => v5jnls}/err553_xaxis_nsmtc.jnl          |    0
 bench/{ => v5jnls}/err553_year_yr.jnl              |    0
 bench/{ => v5jnls}/err560_century.jnl              |    0
 bench/{ => v5jnls}/err560_leap_years.jnl           |    0
 bench/{ => v5jnls}/err560_mc_irreg_t.jnl           |    0
 bench/{ => v5jnls}/err560_regridding_gaps.jnl      |    0
 bench/{ => v5jnls}/err560_shade_levels.jnl         |    0
 bench/{ => v5jnls}/err560_shade_noleap.jnl         |    0
 bench/{ => v5jnls}/err570_cnnn_multiline.jnl       |    0
 bench/{ => v5jnls}/err570_coaching.jnl             |    0
 bench/{ => v5jnls}/err570_compressk_by.jnl         |    0
 bench/{ => v5jnls}/err570_digit_filename.jnl       |    0
 bench/{ => v5jnls}/err570_dods_url_label.jnl       |    0
 bench/{ => v5jnls}/err570_dollar_zero.jnl          |    0
 bench/{ => v5jnls}/err570_fine_grid_list.jnl       |    0
 bench/{ => v5jnls}/err570_hlimit_onepoint.jnl      |    0
 bench/{ => v5jnls}/err570_illegal_stride.jnl       |    0
 bench/{ => v5jnls}/err570_index111.jnl             |    0
 bench/{ => v5jnls}/err570_keylabels.jnl            |    0
 bench/{ => v5jnls}/err570_list_tab_coords.jnl      |    0
 bench/{ => v5jnls}/err570_long_label.jnl           |    0
 bench/{ => v5jnls}/err570_many_variables.jnl       |    0
 bench/{ => v5jnls}/err570_null_symbol.jnl          |    0
 bench/{ => v5jnls}/err570_parse_labelcommand.jnl   |    0
 bench/{ => v5jnls}/err570_poly_lonlat_axis.jnl     |    0
 bench/{ => v5jnls}/err570_poly_over_julian.jnl     |    0
 bench/{ => v5jnls}/err570_ppl_poly.jnl             |    0
 bench/{ => v5jnls}/err570_sh_dat_nan.jnl           |    0
 bench/{ => v5jnls}/err570_shakeylab.jnl            |    0
 bench/{ => v5jnls}/err570_singlecolor.jnl          |    0
 bench/{ => v5jnls}/err570_thick_colors.jnl         |    0
 bench/{ => v5jnls}/err570_time_range.jnl           |    0
 bench/{ => v5jnls}/err580_arg_case.jnl             |    0
 bench/{ => v5jnls}/err580_cal360_region.jnl        |    0
 bench/{ => v5jnls}/err580_cartesian_depth.jnl      |    0
 bench/{ => v5jnls}/err580_cdb.jnl                  |    0
 bench/{ => v5jnls}/err580_cdc_timeaxis.jnl         |    0
 bench/{ => v5jnls}/err580_def_tax_norange.jnl      |    0
 bench/{ => v5jnls}/err580_def_view_axes.jnl        |    0
 bench/{ => v5jnls}/err580_irreg_bounds.jnl         |    0
 bench/{ => v5jnls}/err580_lev_del.jnl              |    0
 bench/{ => v5jnls}/err580_long_dsettitle.jnl       |    0
 bench/{ => v5jnls}/err580_long_title.jnl           |    0
 bench/{ => v5jnls}/err580_long_veckey.jnl          |    0
 bench/{ => v5jnls}/err580_show_axis_t.jnl          |    0
 bench/{ => v5jnls}/err580_strfloat_errors.jnl      |    0
 bench/{ => v5jnls}/err580_use_des.jnl              |    0
 bench/{ => v5jnls}/err581_cal_dates_output.jnl     |    0
 bench/{ => v5jnls}/err581_cancel_data.jnl          |    0
 bench/{ => v5jnls}/err581_command_cx.jnl           |    0
 bench/{ => v5jnls}/err581_contour_zero_lev.jnl     |    0
 bench/{ => v5jnls}/err581_define_1pt_bounds.jnl    |    0
 bench/{ => v5jnls}/err581_des_scale.jnl            |    0
 bench/{ => v5jnls}/err581_exp_spaces.jnl           |    0
 bench/{ => v5jnls}/err581_hlim_axislab.jnl         |    0
 bench/{ => v5jnls}/err581_if_conditional.jnl       |    0
 bench/{ => v5jnls}/err581_illegal_trans.jnl        |    0
 bench/{ => v5jnls}/err581_list_stray_chars.jnl     |    0
 bench/{ => v5jnls}/err581_missing_scale_off.jnl    |    0
 bench/{ => v5jnls}/err581_nlev.jnl                 |    0
 bench/{ => v5jnls}/err581_noleap_mod.jnl           |    0
 bench/{ => v5jnls}/err581_poly_rev.jnl             |    0
 bench/{ => v5jnls}/err581_shakey_inf.jnl           |    0
 .../{ => v5jnls}/err581_sho_func_pattern_match.jnl |    0
 bench/{ => v5jnls}/err581_since_units.jnl          |    0
 bench/{ => v5jnls}/err581_strrindex.jnl            |    0
 bench/{ => v5jnls}/err581_subspanx_fill_bug.jnl    |    0
 bench/{ => v5jnls}/err581_use_bounds.jnl           |    0
 bench/{ => v5jnls}/err581_vs_poly_axis.jnl         |    0
 bench/{ => v5jnls}/exit_script_1.jnl               |    0
 bench/{ => v5jnls}/exit_script_if.jnl              |    0
 bench/{ => v5jnls}/exit_script_if_loop.jnl         |    0
 bench/{ => v5jnls}/exit_script_inloop.jnl          |    0
 bench/{ => v5jnls}/exit_script_loop.jnl            |    0
 bench/{ => v5jnls}/exit_script_twolev.jnl          |    0
 bench/{ => v5jnls}/non_std_refmap.jnl              |    0
 bench/{ => v6jnls}/bn600_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn601_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn602_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn603_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn605_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn608_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn611_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn614_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn61_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn62_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn63_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn64_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn65_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn663_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn665_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn66_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn671_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn67_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn682_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn683_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn685_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn686_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn68_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn691_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn694_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn695_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn696_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn697_bug_fixes.jnl             |    0
 bench/{ => v6jnls}/bn69_bug_fixes.jnl              |    0
 bench/{ => v6jnls}/bn_6d_lab_mode.jnl              |    0
 bench/{ => v6jnls}/bn_DQ.jnl                       |   20 +-
 bench/{ => v6jnls}/bn_DQ.sub                       |    0
 bench/{ => v6jnls}/bn_NaN_note.jnl                 |    0
 bench/{ => v6jnls}/bn_aggregate_e.jnl              |    0
 bench/{ => v6jnls}/bn_aggregate_f.jnl              |    0
 bench/{ => v6jnls}/bn_aggregate_f.sub              |    0
 bench/{ => v6jnls}/bn_aggregate_t.jnl              |    0
 bench/{ => v6jnls}/bn_aggregate_tef.jnl            |    0
 bench/{ => v6jnls}/bn_annotate.jnl                 |    0
 bench/{ => v6jnls}/bn_append_dsg.jnl               |    2 +-
 bench/{ => v6jnls}/bn_attributes.jnl               |    2 +-
 bench/{ => v6jnls}/bn_auto_tprec.jnl               |    0
 bench/{ => v6jnls}/bn_auxiliary.jnl                |    0
 bench/{ => v6jnls}/bn_auxiliary.sub                |    0
 bench/{ => v6jnls}/bn_axis_cf.jnl                  |    0
 bench/{ => v6jnls}/bn_axis_dir_symbols.jnl         |    0
 bench/{ => v6jnls}/bn_axis_nonmonotonic.jnl        |    0
 bench/{ => v6jnls}/bn_axis_outtype.jnl             |    0
 bench/{ => v6jnls}/bn_axis_reversed_syms.jnl       |    0
 bench/{ => v6jnls}/bn_bad_axis_bounds.jnl          |    0
 bench/{ => v6jnls}/bn_bin_regrid.jnl               |    0
 bench/{ => v6jnls}/bn_bin_regrid.sub               |    0
 bench/{ => v6jnls}/bn_bounds_defineax.jnl          |    0
 bench/{ => v6jnls}/bn_can_var_noerr.jnl            |    0
 bench/{ => v6jnls}/bn_cancel_upcase_uservar.jnl    |    0
 bench/{ => v6jnls}/bn_cat_string.jnl               |    0
 bench/{ => v6jnls}/bn_cdf_errmsg.jnl               |    0
 bench/{ => v6jnls}/bn_cdf_keepax.jnl               |    0
 bench/{ => v6jnls}/bn_cdf_keepax.sub1              |    0
 bench/{ => v6jnls}/bn_cdf_keepax.sub2              |    0
 bench/{ => v6jnls}/bn_cdf_keepax.sub3              |    0
 bench/{ => v6jnls}/bn_cdf_keepax.sub4              |    0
 bench/{ => v6jnls}/bn_cdf_reversed_keepax.sub      |    0
 bench/{ => v6jnls}/bn_center_key_labels.jnl        |    0
 bench/{ => v6jnls}/bn_climatology_attr.jnl         |    0
 bench/{ => v6jnls}/bn_clock_syms.jnl               |    0
 bench/{ => v6jnls}/bn_conventions_history.jnl      |    2 +-
 bench/{ => v6jnls}/bn_convolve.jnl                 |    0
 bench/{ => v6jnls}/bn_coordvars_atts.jnl           |    0
 bench/{ => v6jnls}/bn_dataset_qualifier.jnl        |    0
 bench/{ => v6jnls}/bn_date1900_array.jnl           |    0
 bench/{ => v6jnls}/bn_deg_min.jnl                  |    0
 bench/{ => v6jnls}/bn_descr_4digit.jnl             |    0
 bench/{ => v6jnls}/bn_descriptor_mc.jnl            |    0
 bench/{ => v6jnls}/bn_direction_fcns_6d.jnl        |    0
 bench/{ => v6jnls}/bn_dp_readscale.jnl             |    0
 bench/{ => v6jnls}/bn_dsg_e_x.jnl                  |    0
 bench/{ => v6jnls}/bn_element_functions.jnl        |    0
 bench/{ => v6jnls}/bn_enter_exit_GO.jnl            |    0
 bench/{ => v6jnls}/bn_eof_simple.jnl               |  106 +-
 bench/{ => v6jnls}/bn_eof_simple2.jnl              |  101 +-
 bench/{ => v6jnls}/bn_expressions_6d.jnl           |    0
 bench/{ => v6jnls}/bn_f_tax_fcns.jnl               |    0
 bench/{ => v6jnls}/bn_fifty_files.jnl              |    0
 bench/{ => v6jnls}/bn_floatstr.jnl                 |    0
 bench/{ => v6jnls}/bn_floatstr_extended.jnl        |    0
 bench/{ => v6jnls}/bn_fmrc.jnl                     |    0
 bench/{ => v6jnls}/bn_global_atts.jnl              |    6 +-
 bench/{ => v6jnls}/bn_grads_z.jnl                  |    0
 bench/{ => v6jnls}/bn_ifv.jnl                      |    0
 bench/{ => v6jnls}/bn_interpolate_6d.jnl           |    0
 bench/{ => v6jnls}/bn_interpolate_6d.sub           |    0
 bench/{ => v6jnls}/bn_isdepth.jnl                  |    0
 bench/{ => v6jnls}/bn_keep_axisnames.jnl           |    0
 bench/{ => v6jnls}/bn_key_label_minmax.jnl         |    0
 bench/{ => v6jnls}/bn_labnum_calendar.jnl          |    0
 bench/{ => v6jnls}/bn_last_error.jnl               |    0
 bench/{ => v6jnls}/bn_last_go_file.jnl             |    0
 bench/{ => v6jnls}/bn_legend_labels.jnl            |    0
 bench/{ => v6jnls}/bn_let_remote.jnl               |    0
 bench/{ => v6jnls}/bn_letd_attributes.jnl          |    0
 bench/{ => v6jnls}/bn_linecolors.jnl               |    0
 bench/{ => v6jnls}/bn_list_clim_axes.jnl           |    0
 bench/{ => v6jnls}/bn_lon_lat_time_string.jnl      |    0
 bench/{ => v6jnls}/bn_long_grid_names.jnl          |    0
 bench/{ => v6jnls}/bn_long_lists.jnl               |    0
 bench/{ => v6jnls}/bn_long_revision_num.jnl        |    0
 bench/{ => v6jnls}/bn_long_symnames.jnl            |    0
 bench/{ => v6jnls}/bn_lsl_lowpass.jnl              |    0
 bench/{ => v6jnls}/bn_median.jnl                   |    0
 bench/{ => v6jnls}/bn_memory_symbol.jnl            |    0
 bench/{ => v6jnls}/bn_min_max_smoothers.jnl        |    0
 bench/{ => v6jnls}/bn_mode_nlevels.jnl             |    0
 bench/{ => v6jnls}/bn_mode_nodata_lab.jnl          |    0
 bench/{ => v6jnls}/bn_modnbd.jnl                   |    0
 bench/{ => v6jnls}/bn_multi_decade.jnl             |    0
 bench/{ => v6jnls}/bn_n_open_dsets_sym.jnl         |    0
 bench/{ => v6jnls}/bn_nco_append.jnl               |    0
 bench/{ => v6jnls}/bn_netcdf4.jnl                  |    0
 bench/{ => v6jnls}/bn_no_valid_on_plot.jnl         |    0
 bench/{ => v6jnls}/bn_nobounds.jnl                 |    0
 bench/{ => v6jnls}/bn_outtype.jnl                  |    0
 bench/{ => v6jnls}/bn_permute_ascii.jnl            |    0
 bench/{ => v6jnls}/bn_plot_along.jnl               |    0
 bench/{ => v6jnls}/bn_plot_color_only.jnl          |    0
 bench/{ => v6jnls}/bn_plot_decimate.jnl            |    0
 bench/{ => v6jnls}/bn_plot_ribbon_gaploc.jnl       |    0
 bench/{ => v6jnls}/bn_polygon_log.jnl              |    0
 .../bn_proleptic_gregorian_calendar.jnl            |    0
 bench/{ => v6jnls}/bn_randu2_randn2.jnl            |    0
 bench/{ => v6jnls}/bn_regrid_6d.jnl                |    0
 bench/{ => v6jnls}/bn_regrid_transforms_6d.jnl     |    0
 bench/{ => v6jnls}/bn_repeated_coords.jnl          |    0
 bench/{ => v6jnls}/bn_repl_9999999.jnl             |    0
 bench/{ => v6jnls}/bn_return_defined.jnl           |    0
 bench/{ => v6jnls}/bn_return_xmod_tmod.jnl         |    0
 bench/{ => v6jnls}/bn_ribbon_plot.jnl              |    0
 bench/{ => v6jnls}/bn_samplexyt.jnl                |    0
 bench/{ => v6jnls}/bn_save_justdim.jnl             |    0
 bench/{ => v6jnls}/bn_scat2grid_bin.jnl            |    0
 bench/{ => v6jnls}/bn_set_axis_name.jnl            |    0
 bench/{ => v6jnls}/bn_set_axis_regular.jnl         |    0
 bench/{ => v6jnls}/bn_set_cancel_redirect.jnl      |    0
 bench/{ => v6jnls}/bn_set_strides.jnl              |   13 +-
 bench/{ => v6jnls}/bn_set_var_name.jnl             |    0
 bench/{ => v6jnls}/bn_shade_trim.jnl               |    0
 bench/{ => v6jnls}/bn_short.sub                    |    0
 bench/{ => v6jnls}/bn_shortgo.jnl                  |    0
 bench/{ => v6jnls}/bn_shortgo2.jnl                 |    0
 bench/{ => v6jnls}/bn_show_commands.jnl            |    0
 bench/{ => v6jnls}/bn_show_noupcase.jnl            |    0
 bench/{ => v6jnls}/bn_show_outfile.jnl             |    0
 bench/{ => v6jnls}/bn_show_uvar_grid.jnl           |    0
 bench/{ => v6jnls}/bn_show_xml_file.jnl            |    0
 bench/{ => v6jnls}/bn_single_colorlev.jnl          |    0
 bench/{ => v6jnls}/bn_sort_strings.jnl             |    0
 bench/{ => v6jnls}/bn_spawn_size.jnl               |    0
 bench/{ => v6jnls}/bn_speedtest.jnl                |    0
 bench/{ => v6jnls}/bn_stddev.jnl                   |    0
 bench/{ => v6jnls}/bn_strdim.jnl                   |    0
 bench/{ => v6jnls}/bn_string_ngd_nbd.jnl           |    0
 bench/{ => v6jnls}/bn_syntax_6d.jnl                |    0
 bench/{ => v6jnls}/bn_tab_comma_multivar.jnl       |    0
 bench/{ => v6jnls}/bn_tax_tstep.jnl                |    0
 bench/{ => v6jnls}/bn_test_opendap.jnl             |    0
 bench/{ => v6jnls}/bn_time2d.jnl                   |    0
 bench/{ => v6jnls}/bn_time_short_axes.jnl          |    0
 bench/{ => v6jnls}/bn_transforms.jnl               |    0
 bench/{ => v6jnls}/bn_txtype_dmy.jnl               |    0
 bench/{ => v6jnls}/bn_unquoted_args.jnl            |    0
 bench/{ => v6jnls}/bn_var_hist_levels.jnl          |    0
 bench/{ => v6jnls}/bn_varcontext_attributes.jnl    |    0
 bench/{ => v6jnls}/bn_variance.jnl                 |    0
 bench/{ => v6jnls}/bn_variance_large.jnl           |    0
 bench/{ => v6jnls}/bn_vec_mod.jnl                  |    0
 bench/{ => v6jnls}/bn_vector_symbols.jnl           |    0
 bench/{ => v6jnls}/bn_vtree.jnl                    |    0
 bench/{ => v6jnls}/bn_vtree.sub                    |    0
 bench/{ => v6jnls}/bn_vtree_outfile.jnl            |    0
 bench/{ => v6jnls}/bn_vtree_outfile.sub            |    0
 bench/{ => v6jnls}/bn_vtree_regrid.jnl             |    0
 bench/{ => v6jnls}/bn_wgt_transform.jnl            |    0
 bench/{ => v6jnls}/bn_window_title.jnl             |    0
 bench/{ => v6jnls}/bn_write_integer_att.jnl        |    0
 bench/{ => v6jnls}/bn_xml_header.jnl               |    0
 bench/{ => v6jnls}/bn_xml_repl.jnl                 |    0
 bench/{ => v6jnls}/err600_check_bounds_regular.jnl |    0
 bench/{ => v6jnls}/err600_ferret_axis_names.jnl    |    0
 bench/{ => v6jnls}/err600_if_comments_tab.jnl      |    0
 bench/{ => v6jnls}/err600_let_d.jnl                |    0
 bench/{ => v6jnls}/err600_long_bounds_name.jnl     |    0
 bench/{ => v6jnls}/err600_long_symbol_string.jnl   |    0
 bench/{ => v6jnls}/err600_missing_flag.jnl         |    0
 bench/{ => v6jnls}/err600_nc_des_order.jnl         |    0
 bench/{ => v6jnls}/err600_reset_redefine_axis.jnl  |    0
 bench/{ => v6jnls}/err600_returnsize.jnl           |    0
 bench/{ => v6jnls}/err600_save_two.jnl             |    0
 bench/{ => v6jnls}/err600_set_var_title.jnl        |    0
 bench/{ => v6jnls}/err600_tab_comma_missingdat.jnl |    0
 bench/{ => v6jnls}/err600_upcase.jnl               |    0
 bench/{ => v6jnls}/err600_var_label.jnl            |    0
 bench/{ => v6jnls}/err600_vec_aspect.jnl           |    0
 bench/{ => v6jnls}/err601_check_missing_3arg.jnl   |    0
 bench/{ => v6jnls}/err601_index_111.jnl            |    0
 bench/{ => v6jnls}/err601_irregular_axis.jnl       |    0
 .../{ => v6jnls}/err601_missing_string_element.jnl |    0
 bench/{ => v6jnls}/err601_sho_ax_xml_calendar.jnl  |    0
 bench/{ => v6jnls}/err602_curvi_modulo_cut.jnl     |    0
 bench/{ => v6jnls}/err602_list_prec.jnl            |    0
 bench/{ => v6jnls}/err602_shade_line_lev.jnl       |    0
 bench/{ => v6jnls}/err604_irreg_axis.jnl           |    0
 bench/{ => v6jnls}/err605_show_func.jnl            |    0
 bench/{ => v6jnls}/err607_axis_minmax_syms.jnl     |    0
 bench/{ => v6jnls}/err607_lev_errmsg.jnl           |    0
 bench/{ => v6jnls}/err607_set_new_history_att.jnl  |    0
 bench/{ => v6jnls}/err607_show_var_xml.jnl         |    0
 bench/{ => v6jnls}/err608_bug1556.jnl              |    0
 .../{ => v6jnls}/err608_precision_neg_numbers.jnl  |    0
 bench/{ => v6jnls}/err611_axislab.jnl              |    0
 bench/{ => v6jnls}/err611_context_after_error.jnl  |    0
 bench/{ => v6jnls}/err611_convert_missing_type.jnl |    0
 bench/{ => v6jnls}/err611_digit_filename.jnl       |    0
 bench/{ => v6jnls}/err611_ef_string_result.jnl     |    0
 bench/{ => v6jnls}/err611_exit_if.jnl              |    0
 bench/{ => v6jnls}/err611_irregular_axis.jnl       |    0
 bench/{ => v6jnls}/err611_isize_gc_fcns.jnl        |    0
 bench/{ => v6jnls}/err611_ov_ax.jnl                |    0
 bench/{ => v6jnls}/err611_parse_semicolon.jnl      |    0
 bench/{ => v6jnls}/err611_polygons.jnl             |    0
 bench/{ => v6jnls}/err611_return_precision.jnl     |    0
 bench/{ => v6jnls}/err611_save_from_desc.jnl       |    0
 bench/{ => v6jnls}/err611_save_irreg.jnl           |    0
 bench/{ => v6jnls}/err611_set_uvar_outtyp.jnl      |    0
 bench/{ => v6jnls}/err611_set_var_ez.jnl           |    0
 bench/{ => v6jnls}/err611_shade_fill_levs.jnl      |    0
 bench/{ => v6jnls}/err611_wrong_fineaxis_range.jnl |    0
 bench/{ => v6jnls}/err618_julday.jnl               |    0
 bench/{ => v6jnls}/err61_360_calendar.jnl          |    0
 .../{ => v6jnls}/err61_context_scalar_strings.jnl  |    0
 bench/{ => v6jnls}/err61_contour_subspan_reps.jnl  |    0
 bench/{ => v6jnls}/err61_exit_script.jnl           |    0
 bench/{ => v6jnls}/err61_new_attr_on_axis.jnl      |    0
 .../{ => v6jnls}/err61_poly_shade_over_noaxes.jnl  |    0
 bench/{ => v6jnls}/err61_show_dat_var_xml.jnl      |    0
 bench/{ => v6jnls}/err61_write_bounds.jnl          |    0
 bench/{ => v6jnls}/err62_append_irreg_to_reg.jnl   |    0
 bench/{ => v6jnls}/err62_axis_stride_off.jnl       |    0
 .../err62_compound_string_conditional.jnl          |    0
 bench/{ => v6jnls}/err62_contourbug.jnl            |    0
 bench/{ => v6jnls}/err62_cos_lat_uncentered.jnl    |    0
 bench/{ => v6jnls}/err62_if_inside_repeat.jnl      |    0
 bench/{ => v6jnls}/err62_levset.jnl                |    0
 bench/{ => v6jnls}/err62_one_point_bounds.jnl      |    0
 bench/{ => v6jnls}/err62_reset_after_inf.jnl       |    0
 bench/{ => v6jnls}/err62_reversed_up.jnl           |    0
 bench/{ => v6jnls}/err62_samplexy.jnl              |    0
 bench/{ => v6jnls}/err62_save_missingcoordvar.jnl  |    0
 bench/{ => v6jnls}/err62_string_write_nc.jnl       |    0
 bench/{ => v6jnls}/err62_thick_tic_time_axis.jnl   |    0
 bench/{ => v6jnls}/err62_title_curvi_plot.jnl      |    0
 bench/{ => v6jnls}/err63_days1900toydmhms.jnl      |    0
 bench/{ => v6jnls}/err63_delim_E.jnl               |    0
 bench/{ => v6jnls}/err63_log_vaxis.jnl             |    0
 bench/{ => v6jnls}/err64_packed_data.jnl           |    0
 bench/{ => v6jnls}/err64_parse_equals.jnl          |    0
 .../{ => v6jnls}/err64_polymark_over_calendar.jnl  |    0
 bench/{ => v6jnls}/err64_regrid_noleap.jnl         |    0
 bench/{ => v6jnls}/err64_return_precision.jnl      |    0
 bench/{ => v6jnls}/err64_shakey_missingdata.jnl    |    0
 bench/{ => v6jnls}/err64_very_small_latlon.jnl     |    0
 bench/{ => v6jnls}/err65_averages.jnl              |    0
 bench/{ => v6jnls}/err65_dots_in_dashes.jnl        |    0
 bench/{ => v6jnls}/err65_read_epic_cdf.jnl         |    0
 bench/{ => v6jnls}/err664_tax_fcns.jnl             |    0
 bench/{ => v6jnls}/err664_xml_keep_case.jnl        |    0
 bench/{ => v6jnls}/err664_xml_one_point_axis.jnl   |    0
 bench/{ => v6jnls}/err665_centered_lev.jnl         |    0
 bench/{ => v6jnls}/err665_din.jnl                  |    0
 bench/{ => v6jnls}/err665_hours_since_T.jnl        |    0
 bench/{ => v6jnls}/err665_sum_4d_labels.jnl        |    0
 bench/{ => v6jnls}/err667_5d_netcdf.jnl            |    0
 bench/{ => v6jnls}/err667_att_too_long.jnl         |    0
 bench/{ => v6jnls}/err667_dup_axnames.jnl          |    0
 bench/{ => v6jnls}/err667_mode_desperate.jnl       |    0
 bench/{ => v6jnls}/err667_show_var_twice.jnl       |    0
 bench/{ => v6jnls}/err667_string_if.jnl            |    0
 bench/{ => v6jnls}/err66_all_missing_lev_v.jnl     |    0
 bench/{ => v6jnls}/err672_axis_label_prec.jnl      |    0
 bench/{ => v6jnls}/err672_axis_order.jnl           |    2 +-
 bench/{ => v6jnls}/err672_dset_cx.jnl              |    0
 bench/{ => v6jnls}/err672_long_show_axis.jnl       |    0
 bench/{ => v6jnls}/err672_runoff_page.jnl          |    0
 bench/{ => v6jnls}/err672_samplexy_modulo.jnl      |    0
 bench/{ => v6jnls}/err672_stray_line.jnl           |    0
 bench/{ => v6jnls}/err672_subscr_precision.jnl     |    0
 bench/{ => v6jnls}/err672_tax_functions_prec.jnl   |    0
 bench/{ => v6jnls}/err672_varnames.jnl             |    0
 bench/{ => v6jnls}/err672_vert_axislabel.jnl       |    0
 bench/{ => v6jnls}/err67_nrst_trans.jnl            |    0
 bench/{ => v6jnls}/err67_regridding_dyn.jnl        |    0
 bench/{ => v6jnls}/err67_reverse_bounds.jnl        |    0
 bench/{ => v6jnls}/err67_save_append_open.jnl      |    0
 bench/{ => v6jnls}/err67_tax_modtime.jnl           |    0
 bench/{ => v6jnls}/err681_dims_direction.jnl       |    0
 bench/{ => v6jnls}/err682_append_packed.jnl        |    0
 bench/{ => v6jnls}/err682_axis_no_clue.jnl         |    0
 bench/{ => v6jnls}/err682_grid_merge.jnl           |    0
 bench/{ => v6jnls}/err682_if_yes_exit.jnl          |    0
 bench/{ => v6jnls}/err682_scale_no_offset.jnl      |    0
 bench/{ => v6jnls}/err682_shrink_axlab.jnl         |    0
 bench/{ => v6jnls}/err682_use_no_quotes.jnl        |    0
 bench/{ => v6jnls}/err682_xact_high_prec.jnl       |    0
 bench/{ => v6jnls}/err6842_context_shape.jnl       |    0
 bench/{ => v6jnls}/err684_FillValue_xml.jnl        |    0
 bench/{ => v6jnls}/err684_axticlab.jnl             |    0
 bench/{ => v6jnls}/err684_context_shape.jnl        |    0
 bench/{ => v6jnls}/err684_define_grid.jnl          |    0
 bench/{ => v6jnls}/err684_degC_axlab.jnl           |    0
 bench/{ => v6jnls}/err684_delimited_precision.jnl  |    2 +-
 bench/{ => v6jnls}/err684_dotstart.jnl             |    0
 bench/{ => v6jnls}/err684_evnt_z.jnl               |    0
 bench/{ => v6jnls}/err684_label_quotes.jnl         |    0
 bench/{ => v6jnls}/err684_line_plot_zero.jnl       |    0
 bench/{ => v6jnls}/err684_null_stringwrite.jnl     |    0
 bench/{ => v6jnls}/err684_packed_output.jnl        |    0
 .../{ => v6jnls}/err684_repeated_coordindates.jnl  |    0
 bench/{ => v6jnls}/err684_save_expression.jnl      |    0
 bench/{ => v6jnls}/err684_save_subset.jnl          |    0
 bench/{ => v6jnls}/err684_string_dim_name.jnl      |    0
 bench/{ => v6jnls}/err684_tax_fcns.jnl             |    0
 bench/{ => v6jnls}/err684_vfine_to_coarse.jnl      |    0
 bench/{ => v6jnls}/err685_lowercaseAxis.jnl        |    0
 bench/{ => v6jnls}/err685_ppl_palette.jnl          |    0
 bench/{ => v6jnls}/err685_redefine_uvar_att.jnl    |    0
 bench/{ => v6jnls}/err685_ribbon_by_val.jnl        |    0
 bench/{ => v6jnls}/err685_samplexy.jnl             |    0
 bench/{ => v6jnls}/err685_shade_set.jnl            |    0
 bench/{ => v6jnls}/err685_show_grid_e.jnl          |    0
 bench/{ => v6jnls}/err685_use_no_extension.jnl     |    2 +-
 bench/{ => v6jnls}/err686_cancel_invalid_var.jnl   |    0
 bench/{ => v6jnls}/err686_dup_axnames.jnl          |    0
 bench/{ => v6jnls}/err686_faxis_label.jnl          |    0
 bench/{ => v6jnls}/err686_individual_levels.jnl    |    0
 bench/{ => v6jnls}/err686_long_list_varnames.jnl   |    0
 bench/{ => v6jnls}/err686_redef_ascii_att.jnl      |    0
 bench/{ => v6jnls}/err686_set_var_name.jnl         |    0
 bench/{ => v6jnls}/err686_sho_nonexist_att.jnl     |    0
 bench/{ => v6jnls}/err686_show_xml_letd.jnl        |    0
 bench/{ => v6jnls}/err691_bnds_case.jnl            |    0
 bench/{ => v6jnls}/err691_pt_in_poly.jnl           |    0
 bench/{ => v6jnls}/err691_substring_arg.jnl        |    0
 bench/{ => v6jnls}/err693_attr_in_gcfcn.jnl        |    0
 bench/{ => v6jnls}/err693_edit_useratt.jnl         |    0
 bench/{ => v6jnls}/err693_ef_axis_precision.jnl    |    0
 bench/{ => v6jnls}/err693_fcn_of_attvar.jnl        |    0
 bench/{ => v6jnls}/err693_frame_types.jnl          |    0
 bench/{ => v6jnls}/err693_if_then_flow_1368.jnl    |    0
 bench/{ => v6jnls}/err693_if_then_flow_1446.jnl    |    0
 bench/{ => v6jnls}/err693_if_then_flow_1681.jnl    |    0
 bench/{ => v6jnls}/err693_if_then_flow_1706.jnl    |    0
 bench/{ => v6jnls}/err693_if_then_flow_1860.jnl    |    0
 bench/{ => v6jnls}/err693_if_then_flow_2211.jnl    |    0
 bench/{ => v6jnls}/err693_if_then_flow_2214.jnl    |    0
 bench/{ => v6jnls}/err693_inconsistent_quote.jnl   |    0
 bench/{ => v6jnls}/err693_isize_and_gcfcn.jnl      |    0
 .../{ => v6jnls}/err693_isready_dyn_grid_crash.jnl |    0
 bench/{ => v6jnls}/err693_isready_hang.jnl         |    0
 bench/{ => v6jnls}/err693_lev_nv_over.jnl          |    0
 bench/{ => v6jnls}/err693_line_over_axis.jnl       |    0
 bench/{ => v6jnls}/err693_list_missing.jnl         |    0
 bench/{ => v6jnls}/err693_parse_curly.jnl          |    0
 bench/{ => v6jnls}/err693_parse_curly.sub          |    0
 bench/{ => v6jnls}/err693_redef_rec_axis.jnl       |    0
 bench/{ => v6jnls}/err693_repeat_err.jnl           |    0
 bench/{ => v6jnls}/err693_ribbon_scale.jnl         |    0
 bench/{ => v6jnls}/err693_ribbon_start_missing.jnl |    0
 bench/{ => v6jnls}/err693_save_packed.jnl          |    0
 bench/{ => v6jnls}/err693_scalar_grids.jnl         |    0
 bench/{ => v6jnls}/err693_shape.jnl                |    0
 bench/{ => v6jnls}/err693_shf_subscr.jnl           |    0
 bench/{ => v6jnls}/err693_shift_w_region.jnl       |    0
 bench/{ => v6jnls}/err693_std4d.jnl                |    0
 bench/{ => v6jnls}/err693_string_results.jnl       |    0
 bench/{ => v6jnls}/err693_subspan_trans.jnl        |    0
 .../{ => v6jnls}/err693_undetected_regrid_dset.jnl |    0
 bench/{ => v6jnls}/err693_upcase_quoted_name.jnl   |    0
 bench/{ => v6jnls}/err694_longname_showdat.jnl     |    2 +-
 bench/{ => v6jnls}/err694_shf_missing.jnl          |    0
 bench/{ => v6jnls}/err695_bounds_match_axis.jnl    |    0
 bench/{ => v6jnls}/err695_grave_prec.jnl           |    0
 bench/{ => v6jnls}/err695_show_dat_nodata.jnl      |    0
 bench/{ => v6jnls}/err696_2d_time_overlay.jnl      |    0
 bench/{ => v6jnls}/err696_annotate_numeric.jnl     |    0
 bench/{ => v6jnls}/err696_argument_blanks.jnl      |    0
 bench/{ => v6jnls}/err696_argument_blanks_sub.jnl  |    0
 bench/{ => v6jnls}/err696_centerlab_restore.jnl    |    0
 bench/{ => v6jnls}/err696_contour_conset.jnl       |    0
 bench/{ => v6jnls}/err696_def_att.jnl              |    0
 bench/{ => v6jnls}/err696_def_ax_edges.jnl         |    0
 bench/{ => v6jnls}/err696_def_ax_f.jnl             |    0
 .../{ => v6jnls}/err696_e_component_mem_crptn.jnl  |    0
 bench/{ => v6jnls}/err696_ft_calendars.jnl         |    0
 bench/{ => v6jnls}/err696_hovmuller_mod_fill.jnl   |    0
 bench/{ => v6jnls}/err696_mem_err_report.jnl       |    0
 bench/{ => v6jnls}/err696_mod_sub_fln.jnl          |    0
 bench/{ => v6jnls}/err696_mode_cal_f.jnl           |    0
 bench/{ => v6jnls}/err696_multiple_slashes.jnl     |    0
 bench/{ => v6jnls}/err696_only_inf_lev.jnl         |    0
 bench/{ => v6jnls}/err696_plot_ax_ppl.jnl          |    0
 bench/{ => v6jnls}/err696_poly_over_label.jnl      |    0
 bench/{ => v6jnls}/err696_red_keylab.jnl           |    0
 bench/{ => v6jnls}/err696_repeat_escapes.jnl       |    0
 bench/{ => v6jnls}/err696_return_prec.jnl          |    0
 bench/{ => v6jnls}/err696_return_type.jnl          |    0
 bench/{ => v6jnls}/err696_save_noupcase.jnl        |    0
 bench/{ => v6jnls}/err696_shade_subspan_clim.jnl   |    0
 bench/{ => v6jnls}/err696_singlevec_over.jnl       |    0
 bench/{ => v6jnls}/err696_subspan_mod_in_expr.jnl  |    0
 bench/{ => v6jnls}/err696_subspan_mod_strides.jnl  |    0
 bench/{ => v6jnls}/err696_subspan_transforms.jnl   |    0
 bench/{ => v6jnls}/err696_time_overlay.jnl         |    0
 bench/{ => v6jnls}/err696_write_no_dim.jnl         |    0
 bench/{ => v6jnls}/err69_arg_type_error.jnl        |    0
 bench/{ => v6jnls}/err69_bad_bounds.jnl            |    0
 bench/{ => v6jnls}/err69_const_array.jnl           |    0
 bench/{ => v6jnls}/err69_countervar_context.jnl    |    0
 bench/{ => v6jnls}/err69_ens_badvalue.jnl          |    0
 bench/{ => v6jnls}/err69_fill_trans.jnl            |    0
 .../{ => v6jnls}/err69_isready_and_regridding.jnl  |    0
 bench/{ => v6jnls}/err69_isready_bugs.jnl          |    0
 .../{ => v6jnls}/err69_isready_status_errmsgs.jnl  |    0
 bench/{ => v6jnls}/err69_label_backspace.jnl       |    0
 bench/{ => v6jnls}/err69_letd_dsetnum.jnl          |    0
 bench/{ => v6jnls}/err69_levels_v.jnl              |    0
 bench/{ => v6jnls}/err69_load_big_grid.jnl         |    0
 bench/{ => v6jnls}/err69_long_string_to_xml.jnl    |    0
 bench/{ => v6jnls}/err69_multi_label_ascii.jnl     |    0
 bench/{ => v6jnls}/err69_plot_vs_labs.jnl          |    0
 bench/{ => v6jnls}/err69_repl_scinot.jnl           |    0
 bench/{ => v6jnls}/err69_ribbon_by_levels.jnl      |    0
 bench/{ => v6jnls}/err69_ribbon_histogram.jnl      |    0
 bench/{ => v6jnls}/err69_vtree_and_uvar_regrid.jnl |    0
 bench/{ => v6jnls}/err69_vtree_cancel_axis.jnl     |    0
 bench/{ => v6jnls}/err69_write_attribute.jnl       |    0
 bench/{ => v6jnls}/xml_header_script.jnl           |    0
 bench/{ => v6jnls}/xml_use_coads.jnl               |    0
 bench/{ => v6jnls}/xml_use_numstring.jnl           |    0
 bench/{ => v7jnls}/bn710_bug_fixes.jnl             |    0
 bench/{ => v7jnls}/bn720_bug_fixes.jnl             |    0
 bench/{ => v7jnls}/bn721_bug_fixes.jnl             |    0
 bench/v7jnls/bn722_bug_fixes.jnl                   |   31 +
 bench/{ => v7jnls}/bn_agg_member_syntax.jnl        |    2 +-
 bench/{ => v7jnls}/bn_aggregate_u.jnl              |    0
 bench/{ => v7jnls}/bn_ave_of_ave.jnl               |    0
 bench/{ => v7jnls}/bn_cache_management.jnl         |    0
 bench/{ => v7jnls}/bn_compressed_gather.jnl        |    3 +
 bench/{ => v7jnls}/bn_compressed_gather.sub        |    0
 bench/{ => v7jnls}/bn_delim_datetime.jnl           |    0
 bench/{ => v7jnls}/bn_dot_product.jnl              |    0
 bench/{ => v7jnls}/bn_dynamic_gather.jnl           |    3 +
 bench/{ => v7jnls}/bn_dynamic_gather.sub           |    0
 bench/{ => v7jnls}/bn_ez_noupcase.jnl              |    0
 bench/v7jnls/bn_huge_axis.jnl                      |   26 +
 bench/{ => v7jnls}/bn_iin_regrid.jnl               |    0
 bench/{ => v7jnls}/bn_plot_vs_with_time.jnl        |    0
 bench/v7jnls/bn_save_as_global.jnl                 |   54 +
 bench/{ => v7jnls}/bn_spawn_fail.jnl               |    4 +-
 bench/{ => v7jnls}/bn_stat_precision.jnl           |    0
 bench/{ => v7jnls}/bn_transp_choose.jnl            |    0
 bench/{ => v7jnls}/bn_true_monthly.jnl             |    0
 bench/v7jnls/bn_tseries_modulo.jnl                 |   46 +
 bench/{ => v7jnls}/err700_aggT_5d.jnl              |    0
 bench/{ => v7jnls}/err700_aggregate_from_fmrc.jnl  |    0
 bench/{ => v7jnls}/err700_aggt_dup_grids.jnl       |    0
 bench/{ => v7jnls}/err700_attribute_parsing.jnl    |    0
 bench/{ => v7jnls}/err700_ax_horiz.jnl             |    0
 bench/{ => v7jnls}/err700_axis_dates.jnl           |    0
 bench/{ => v7jnls}/err700_clim_attr_expression.jnl |    0
 bench/{ => v7jnls}/err700_coords.jnl               |    0
 bench/{ => v7jnls}/err700_decimate.jnl             |    0
 bench/{ => v7jnls}/err700_define_1pt_axis.jnl      |    0
 bench/{ => v7jnls}/err700_fmrcdiag.jnl             |    2 +
 bench/{ => v7jnls}/err700_inherit_all.jnl          |    0
 bench/{ => v7jnls}/err700_key.jnl                  |    0
 bench/{ => v7jnls}/err700_legend_labels.jnl        |    0
 bench/{ => v7jnls}/err700_lev_del_symb.jnl         |    0
 bench/{ => v7jnls}/err700_levels_one_level.jnl     |    0
 bench/{ => v7jnls}/err700_list_comma.jnl           |    0
 bench/{ => v7jnls}/err700_modulo.jnl               |    0
 bench/{ => v7jnls}/err700_reg_axis_check.jnl       |    0
 bench/{ => v7jnls}/err700_ribbon_vlog.jnl          |    0
 .../err700_samplexy_subspan_modulo.jnl             |    0
 bench/{ => v7jnls}/err700_save_mod_att.jnl         |    0
 bench/{ => v7jnls}/err700_shade_singlecell.jnl     |    0
 bench/{ => v7jnls}/err700_time_overlay.jnl         |    0
 bench/{ => v7jnls}/err700_timegrat.jnl             |    0
 bench/{ => v7jnls}/err700_unclosed_if.jnl          |    0
 bench/{ => v7jnls}/err700_vs_plot_axes.jnl         |    0
 bench/{ => v7jnls}/err71_2d_ave_miss0.jnl          |    0
 bench/{ => v7jnls}/err71_colorlevs.jnl             |    0
 bench/{ => v7jnls}/err71_err_attrib_overrun.jnl    |    0
 bench/{ => v7jnls}/err71_expr_w_const.jnl          |    0
 bench/{ => v7jnls}/err71_isready_unknown.jnl       |    0
 bench/{ => v7jnls}/err71_plotvs_mode_label.jnl     |    0
 bench/{ => v7jnls}/err71_point_average.jnl         |    0
 bench/{ => v7jnls}/err71_ppl_sho_empty.jnl         |    0
 bench/{ => v7jnls}/err71_prec_return.jnl           |    0
 bench/{ => v7jnls}/err71_read_delim.jnl            |    0
 bench/{ => v7jnls}/err71_repeat_paren.jnl          |    0
 bench/{ => v7jnls}/err71_save_bounds.jnl           |    0
 bench/{ => v7jnls}/err71_save_rigid.jnl            |    0
 bench/{ => v7jnls}/err71_set_redirect.jnl          |    0
 bench/{ => v7jnls}/err71_string_and_if.jnl         |    0
 bench/{ => v7jnls}/err71_user_var_attrib.jnl       |    0
 bench/{ => v7jnls}/err71_uvar_strides.jnl          |    0
 bench/{ => v7jnls}/err71_vs_constant.jnl           |    0
 bench/{ => v7jnls}/err71_vs_lon_over.jnl           |    0
 bench/v7jnls/err721_ascii_size.jnl                 |    9 +
 bench/v7jnls/err721_color_levels.jnl               |   11 +
 bench/v7jnls/err721_dot_grid.jnl                   |   43 +
 bench/v7jnls/err721_dup_labels.jnl                 |   26 +
 bench/v7jnls/err721_dynamic_gather.jnl             |   32 +
 bench/v7jnls/err721_letd_with_grave.jnl            |   13 +
 bench/v7jnls/err721_plotuv.jnl                     |   19 +
 bench/v7jnls/err721_polymark_log.jnl               |   39 +
 bench/v7jnls/err721_stride_size.jnl                |   32 +
 bench/{ => v7jnls}/err72_atts_as_vars.jnl          |    0
 bench/{ => v7jnls}/err72_sum_in_x.jnl              |    0
 bench/{ => v7jnls}/unclosed_if.sub                 |    0
 bin/ferret_paths_template.csh                      |   44 +-
 bin/ferret_paths_template.sh                       |   46 +-
 bin/make_environment_tar                           |    2 +-
 bin/make_executable_tar                            |   22 -
 fer/Makefile                                       |    1 +
 fer/ccr/SOURCE_FILES                               |    4 +-
 fer/ccr/get_edgmem.c                               |   40 +
 fer/ccr/get_linemem.c                              |   40 +
 fer/ccr/nullify_linemem.c                          |   30 +
 fer/ccr/perl_read.c                                |    1 +
 fer/ccr/run_thredds_browser.c                      |  276 -
 fer/common/EF_Util.h                               |    1 -
 fer/common/binaryRead.h                            |   15 +-
 fer/common/ferret.h                                |    3 +-
 fer/common/run_thredds_browser.h                   |   20 -
 fer/common/slash.parm                              |   10 +-
 fer/common/xcommand.cmn                            |    3 +-
 fer/dat/xcommand_data.F                            |   51 +-
 fer/dat/xrevision_data.F                           |    5 +-
 fer/efi/eof_space.F                                |    7 +-
 fer/efi/eof_stat.F                                 |    7 +-
 fer/efi/eof_tfunc.F                                |    7 +-
 fer/efi/eofsvd_space.F                             |    2 +-
 fer/gnl/SOURCE_FILES                               |    1 -
 fer/gnl/build_t_agg_axis.F                         |  604 +-
 fer/gnl/cdf_list.F                                 |  108 +-
 fer/gnl/define_ef_aggregate_grid.F                 |  166 +-
 fer/gnl/define_special_grids.F                     |    2 -
 fer/gnl/finalize_ferret.F                          |    3 +-
 fer/gnl/get_dataset_name.F                         |  107 -
 fer/gnl/init_ef_aggregate_dset.F                   |    3 +-
 fer/gnl/initialize_ferret.F                        |    5 +
 fer/gnl/list_cmnd_data.F                           |    2 +-
 fer/gnl/sort_tseries_dsets.F                       |   76 +-
 fer/ino/find_dset_number.F                         |   20 +-
 fer/ino/init_ez_dset.F                             |    1 +
 fer/ino/read_tm.F                                  |    9 +-
 fer/ino/var_ss_lims.F                              |   39 +-
 fer/mem/SOURCE_FILES                               |    6 +
 .../free_line_dynmem.F}                            |   40 +-
 .../tm_warn_subspan.F => fer/mem/get_line_dynmem.F |  100 +-
 fer/mem/purge_mr_axis.F                            |    9 +-
 .../gcf_set_normal_axis.F => mem/store_edge_ptr.F} |   37 +-
 .../gcf_set_normal_axis.F => mem/store_line_ptr.F} |   37 +-
 .../store_nul_edge_ptr.F}                          |   34 +-
 .../store_nul_line_ptr.F}                          |   34 +-
 fer/plt/disp_prep.F                                |   10 +-
 fer/plt/plot_set_up.F                              |    9 +
 fer/plt/polygon_set_up.F                           |   46 +-
 fer/stk/setup_gather.F                             |    8 +
 fer/utl/SOURCE_FILES                               |    1 -
 fer/utl/deallo_all_axes.F                          |   11 +-
 fer/utl/gcf_get_axis_srcs.F                        |    6 +
 fer/utl/gcf_set_normal_axis.F                      |    7 +-
 fer/utl/pack_line_storage.F                        |  110 -
 fer/utl/ss_neighbors.F                             |    6 +-
 fer/xeq/xeq_cancel.F                               |    5 +-
 fer/xeq/xeq_define.F                               |  254 +-
 fer/xeq/xeq_list.F                                 |   15 +-
 fer/xeq/xeq_set.F                                  |   18 +-
 fmt/cmn/tmap_dims.parm                             |    8 +-
 fmt/cmn/xbuild_grids.cmn                           |   11 +-
 fmt/cmn/xtm_grid.cmn_text                          |   35 +-
 fmt/src/SOURCE_FILES                               |    9 +
 fmt/src/cd_1d_line_from_2d.F                       |   25 +-
 fmt/src/cd_abort_grids.F                           |    5 +-
 fmt/src/cd_get_1_axis.F                            |  489 +-
 fmt/src/cd_get_line_direction.F                    |   11 +-
 fmt/src/cd_make_fmrc_axes.F                        |  154 +-
 fmt/src/cd_make_fmrc_fcal_axis.F                   |   47 +-
 fmt/src/cd_rd_r8_arr.F                             |    2 +-
 fmt/src/cd_scan_vars.F                             |    2 -
 fmt/src/cd_write_axis.F                            |    8 +-
 .../src/copy_line_coords.F                         |   37 +-
 ppl/complot/symwid.F => fmt/src/get_line_coord.F   |   35 +-
 fmt/src/gt_get_time_axis.F                         |   70 +-
 ppl/complot/symwid.F => fmt/src/put_line_coord.F   |   35 +-
 fmt/src/tm_adjust_bounds.F                         |   24 +-
 fmt/src/tm_check_bnds.F                            |  236 +-
 fmt/src/tm_check_bnds_centered.F                   |   60 +-
 fmt/src/tm_check_box_loc.F                         |   29 +-
 fmt/src/tm_check_coords.F                          |  101 +-
 fmt/src/tm_check_line.F                            |  194 +
 fmt/src/tm_check_line_bounds.F                     |   69 +
 .../{tm_irregax_mid.F => tm_check_line_edges.F}    |   69 +-
 fmt/src/tm_close_set_cond_deallo.F                 |    9 +-
 .../src/tm_convert_bounds_edges.F                  |   32 +-
 fmt/src/tm_copy_line.F                             |   13 +-
 fmt/src/tm_deallo_dyn_line_sub.F                   |    5 +-
 fmt/src/tm_garb_col_lines.F                        |  142 -
 fmt/src/tm_irregax_mid.F                           |   34 +-
 fmt/src/tm_line_match.F                            |   24 +-
 .../src/tm_lonw2e_line.F                           |   38 +-
 fmt/src/tm_read_gridfile.F                         |  562 +-
 fmt/src/tm_rm_tmp_line.F                           |    6 +-
 fmt/src/{tm_warn_subspan.F => tm_set_clim_axes.F}  |   90 +-
 fmt/src/tm_warn_subspan.F                          |    4 +-
 fmt/src/tm_world_ax.F                              |   12 +-
 fmt/src/tm_ww_ax_1_n.F                             |    9 +-
 fmt/src/tm_ww_axlims.F                             |   11 +-
 fmt/src/xgt_grid_data.F                            |   52 +-
 jnls/contrib/greatcircle.jnl                       |   59 +
 jnls/examples/compress_str.jnl                     |   46 +
 jnls/go/polyshape.jnl                              |   10 +-
 palettes/six_line_colors.spk                       |   10 +
 ppl/complot/symbel.F                               |    5 +-
 ppl/complot/symwid.F                               |    4 +-
 ppl/nine_by_levels.spk                             |   12 +
 ppl/plot/pltit.F                                   |   12 +
 ppl/tmapadds/SOURCE_FILES                          |    1 +
 .../tmapadds/set_nshd_levels.F                     |   34 +-
 site_specific.mk.in                                |   13 -
 threddsBrowser/.classpath                          |    9 -
 threddsBrowser/.project                            |   17 -
 .../.settings/org.eclipse.jdt.core.prefs           |   12 -
 threddsBrowser/.settings/scoped_pref_store.prefs   |    3 -
 threddsBrowser/Makefile                            |   30 -
 threddsBrowser/README                              |   24 -
 .../ferret/threddsBrowser/BrowserDefaults.java     |  302 -
 .../ferret/threddsBrowser/ExtensionFileFilter.java |   91 -
 .../pmel/ferret/threddsBrowser/HTMLViewer.java     |  116 -
 .../threddsBrowser/LocalDirInvDatasetImpl.java     |   68 -
 .../threddsBrowser/LocalDirTreeScanMonitor.java    |  253 -
 .../ferret/threddsBrowser/LocalDirTreeScanner.java |  294 -
 .../ferret/threddsBrowser/LocationSelector.java    |  184 -
 .../threddsBrowser/LocationSelectorDialog.java     |  404 --
 .../pmel/ferret/threddsBrowser/ThreddsBrowser.java |  606 --
 .../threddsBrowser/ThreddsBrowserListener.java     |  234 -
 threddsBrowser/toolsUI/toolsUI-4.1.jar             |  Bin 19687841 -> 0 bytes
 .../threddsBrowserTests/TestBrowserDefaults.java   |  263 -
 .../TestExtensionFileFilter.java                   |  143 -
 .../TestLocalDirTreeScanMonitor.java               |  197 -
 .../TestLocalDirTreeScanner.java                   |  239 -
 .../threddsBrowserTests/TestThreddsBrowser.java    |   65 -
 1290 files changed, 9661 insertions(+), 13097 deletions(-)

diff --git a/Makefile b/Makefile
index acf6bd4..b45874c 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,6 @@ optimized :
 	$(MAKE) xgks/Makefile
 	$(MAKE) -C xgks
 	$(MAKE) -C fer
-	$(MAKE) -C threddsBrowser
 	$(MAKE) -C external_functions
 	$(MAKE) -C gksm2ps
 	$(MAKE) -C bin/build_fonts/unix
@@ -27,7 +26,6 @@ beta :
 	$(MAKE) xgks/Makefile
 	$(MAKE) -C xgks
 	$(MAKE) -C fer beta
-	$(MAKE) -C threddsBrowser
 	$(MAKE) -C external_functions
 	$(MAKE) -C gksm2ps
 	$(MAKE) -C bin/build_fonts/unix
@@ -38,7 +36,6 @@ debug :
 	$(MAKE) xgks/Makefile
 	$(MAKE) -C xgks
 	$(MAKE) -C fer debug
-	$(MAKE) -C threddsBrowser
 	$(MAKE) -C external_functions debug
 	$(MAKE) -C gksm2ps
 	$(MAKE) -C bin/build_fonts/unix
@@ -53,7 +50,6 @@ memorydebug :
 	$(MAKE) xgks/Makefile
 	$(MAKE) -C xgks
 	$(MAKE) -C fer memorydebug
-	$(MAKE) -C threddsBrowser
 	$(MAKE) -C external_functions debug
 	$(MAKE) -C gksm2ps
 	$(MAKE) -C bin/build_fonts/unix
@@ -73,7 +69,6 @@ clean :
 	$(MAKE) -C bin/build_fonts/unix clean
 	$(MAKE) -C gksm2ps clean
 	$(MAKE) -C external_functions clean
-	$(MAKE) -C threddsBrowser clean
 	$(MAKE) -C fer clean
 	rm -fr lib
 	$(MAKE) xgksclean
diff --git a/README.md b/README.md
index 1f23941..ff1e594 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,30 @@ This repository is regularly synchronized with Ferret repository at PMEL
 (the trunk of the ferret project in the subversion repository at PMEL) 
 using git-svn.
 
+#### Legal Disclaimer
+*This repository is a software product and is not official communication 
+of the National Oceanic and Atmospheric Administration (NOAA), or the 
+United States Department of Commerce (DOC).  All NOAA GitHub project 
+code is provided on an 'as is' basis and the user assumes responsibility 
+for its use.  Any claims against the DOC or DOC bureaus stemming from 
+the use of this GitHub project will be governed by all applicable Federal 
+law.  Any reference to specific commercial products, processes, or services 
+by service mark, trademark, manufacturer, or otherwise, does not constitute 
+or imply their endorsement, recommendation, or favoring by the DOC. 
+The DOC seal and logo, or the seal and logo of a DOC bureau, shall not 
+be used in any manner to imply endorsement of any commercial product 
+or activity by the DOC or the United States Government.*
+
+## Ferret Documentation
+
+For more information on using Ferret, see the Ferret documentation under 
+[http://ferret.pmel.noaa.gov/Ferret/](http://ferret.pmel.noaa.gov/Ferret/)
+
+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)
+
 **If you build Ferret from these source files, please note:**  
 The `site_specific.mk` and `external_functions/ef_utilites/site_specific.mk` 
 files in the repository have been renamed with a `.in` appended to the name. 
@@ -12,3 +36,4 @@ You must copy these files with the `.in` extensions to create files with the
 system.  The `site_specific.mk` files will be ignored by git (the name was 
 added to `.gitignore`) so your customized configuration files will not be 
 added to your repository if you have cloned this repository. 
+
diff --git a/README_build_ferret b/README_build_ferret
index 424643b..2330f1c 100644
--- a/README_build_ferret
+++ b/README_build_ferret
@@ -20,9 +20,7 @@ for Ferret v6.6 at http://porter.pmel.noaa.gov/Ferret/home/documentation/v6-6-re
 To build Ferret:
 
   * Under the FERRET directory you will find a file called site_specific.mk. Edit this file
-  and insert the locations of the HDF5, NetCDF, and readline directories, and java. Java is
-  used only for the ThreddsBrowser facility of Ferret and is not required. If you use Java, 
-  you need version 1.6 "version 6".
+  and insert the locations of the HDF5, NetCDF, and readline directories.
 
   * Still in the top-level FERRET directory, run "make". This will compile and link Ferret, 
   gksm2ps, external functions, and the fonts files. The Ferret executable is the file
diff --git a/bench/README b/bench/README
deleted file mode 100644
index 2263150..0000000
--- a/bench/README
+++ /dev/null
@@ -1,76 +0,0 @@
-FERRET benchmarks README file
-
-Running the benchmarks and interpreting results.
-
-After building Ferret, make a few simple tests for command-line reading,
-script reading, file reading, for example
-
-   > ferretdods_gui
-   yes? list/L=1:5 L
-   yes? go ptest
-
-   yes? use coads_climatology
-   yes? show data
-
-When Ferret is running, the benchmark tests will verify its performance. To run the benchmarks, 
-in the /bench directory we will run the script run_all. Look at the start of run_all, and if you 
-like, customize the section for machine type. This information is used to make the log file, and
-also to look for a machine-specific stream binary file.
-
-Run run_all and answer the questions. When you first run the shell script run_all, you will be 
-coached to create a stream binary file for the machine by compiling and running the program 
-make_stream_file.F. Do this, and then run run_all again.  The benchmarks may be run with or without 
-the shared-object external functions. 
-If the benchmark scripts run correctly, the benchmark job will finish with 
-Display no longer set, about to run batch gif test
-Display still not set, about to run batch ps test
-Ended at Wed Nov 1 09:35:09 PST 2006
-Checking PLT, GIF and PS files.......
-    PLT files look good.....
-    GIF files look good.....
-    PS files look good......
-
-The output is contained in several files:
-
-  all_01nov06at0959.sol_log
-  all_01nov06at0959.sol_err
-  all_01nov06at0959.sol_plt
-
-where the name contains the date and time of the benchmark run, and the extension refers to the 
-machine type or operating system. In addition a number of plot output files are created and 
-compared to reference output by the benchmark script.
-
-In the benchmark directory are "official" output files from a number of operating systems.  To 
-compare your output logs, choose one to compare with your output. There are lines in the benchmark 
-output which may differ from one run of the benchmarks to another and which do not indicate problems 
-with the benchmark run. We may remove them by running the script "clean_ultra" and piping the output 
-to a new file, for the official benchmark log file and the one just created
-
-    > clean_ultra ansley_official.x86_64-linux_log > cleaned_ansley_official.x86_64-linux_log
-    > clean_ultra all_01nov06at0959.sol_log > cleaned_all_01nov06at0959.sol_log 
-
-    > xdiff cleaned_ansley_official.x86_64-linux_log cleaned_all_01nov06at0959.sol_log 
-
-Some differences will still always exist: 
-
-1) The date of the Ferret run and the operating system are included in various outputs such 
-as the Ferret symbol SESSION_DATE, values of labels which are written to the logs, or file 
-attributes which are listed. These differences may be ignored.
-
-2) Values of PPL$XPIXEL and PPL$YPIXEL will differ; these are computed based on the display of the terminal where the benchmark job is run
-
-3) If you are comparing a log from a different operating system, there may be differences in the 
-values of data in output. This might show up as missing_value=-9.9999998e+33f vs missing_value=-1.e-34f, or 
-listings may differ in the least-significant positions. Most all Ferret results are single-prescision, so 
-diffreences of that size are OK. Try to compare with output from a similar machine (32- or 64-bit for
-instance).
-
-4) At the end of the log files, there is a collection of outputs from "spawn ncdump file.nc" commands. 
-Differences in the form of ncdump output, such as differently-placed commas, may exist especially if you
-are comparing logs from different operating systems.
-
-5) Some benchmark scripts involve the output of a spawn command.  The speed with which this output is
-written to the log file may vary from run to run or system to system.  Occasional garbled output is the 
-result of this effect. 
-
-
diff --git a/bench/README.md b/bench/README.md
new file mode 100644
index 0000000..51d6f7b
--- /dev/null
+++ b/bench/README.md
@@ -0,0 +1,130 @@
+## FERRET benchmarks README file
+
+Running the benchmarks and interpreting results. There are two methods 
+for running the benchmarks.
+
+The automated testing uses a script to start a new instance of ferret to run 
+each test, and does not display any plots. Expected results are given under 
+the `bench/test_results` directory.
+
+The manual testing uses a script to run all the tests in a single instance of 
+ferret. Plots are displayed as the tests are run. Expected results are given 
+by the `bench/ansley_official*` files as well as under the `metafile_masters*` 
+subdirectories.
+
+Note that these tests expect the nco utility programs `ncdump` and `ncatted` 
+to be found on the system path. If there programs do not exist the tests will 
+still run results will differ, particularly all ncdump output will be missing.
+The ImageMagick program `compare` is also used to compare plots.
+
+### Automated testing
+
+Build and install ferret, including setting the ferret environment variables 
+using the appropriate `ferret_paths` script. You may wish to check that ferret
+is running properly, for example:
+
+> $ ferret  
+> yes? use coads_climatology  
+> yes? shade /l=5 sst  
+> yes? quit  
+
+To test, change to the `bench` subdirectory and enter `make run_tests`. 
+This will test whichever ferret executable is first found on the system path 
+(`which ferret`) and tests the external functions given under the directory 
+specified by `$FER_EXTERNAL_FUNCTIONS`. A message is output to the console 
+when each test script is run. On completion, plots and output are compared to 
+expected results, with messages output to the console, differences in plots 
+(using the `compare` program) saved to `*_diff.gif` files, and differences in 
+output saved to `*.diff` files.
+
+Ideally there would be no `*_diff.gif` files because all the GIF plots are 
+completely identical to the expected results.  However, there are usually some 
+of these plots due to inconsequential differences in the binary output. 
+These `*_diff.gif` plots should be examined to see if there are any real 
+differences in the plots, which are shown in bright solid red against a faded 
+image of the original plot.  Also, ideally the `*.diff` files are empty; if 
+not, the differences should be examined for anything of real significance.
+
+To remove all the files generated from the testing, enter `make clean` when
+in the bench subdirectory.
+
+### Manual/Displayed testing
+
+After building Ferret, make a few simple tests for command-line reading,
+script reading, file reading, for example:
+
+> $ ferret  
+> yes? list/L=1:5 L  
+> yes? go ptest  
+>  
+> yes? use coads_climatology  
+> yes? show data  
+
+When Ferret is running, the benchmark tests will verify its performance. To 
+run the benchmarks, in the /bench directory we will run the script `run_all`. 
+Look at the start of `run_all`, and if you like, customize the section for 
+machine type. This information is used to make the log file, and also to look 
+for a machine-specific stream binary file.
+
+Run `run_all` and answer the questions. When you first run the shell script 
+`run_all`, you may be coached to create a stream binary file for the machine 
+by compiling and running the program `make_stream_file.F`. If so, do this, 
+and then run `run_all` again. The benchmarks may be run with or without the 
+shared-object external functions. If the benchmark scripts run correctly, 
+the benchmark job will finish with:
+
+> Display no longer set, about to run batch gif test  
+> Display still not set, about to run batch ps test  
+> Ended at (some date)  
+> Checking PLT, GIF and PS files.......  
+>     PLT files look good.....  
+>     GIF files look good.....  
+>     PS files look good......  
+
+The output is contained in several files:
+
+> all_01nov16at0959.x86_64-linux_log  
+> all_01nov16at0959.x86_64-linux_err  
+> all_01nov16at0959.x86_64-linux_plt  
+
+where the name contains the date and time of the benchmark run, and the extension 
+refers to the machine type or operating system. In addition a number of plot 
+output files are created and compared to reference output by the benchmark script.
+
+In the benchmark directory are "official" output files from supported operating 
+systems. To compare your output logs, choose one to compare with your output. 
+There are lines in the benchmark output which may differ from one run of the 
+benchmarks to another and which do not indicate problems with the benchmark run. 
+We may remove them by running the script `clean_ultra` (or `clean_draconian`) 
+and piping the output to a new file, for the official benchmark log file and 
+the one just created:
+
+> $ clean_ultra ansley_official.x86_64-linux_log \> cleaned_ansley_official.x86_64-linux_log  
+> $ clean_ultra all_01nov16at0959.x86_64-linux_log \> cleaned_all_01nov16at0959.x86_64-linux_log  
+> $ diff cleaned_ansley_official.x86_64-linux_log cleaned_all_01nov16at0959.x86_64-linux_log  
+
+Some differences will still always exist: 
+
+1. The date of the Ferret run and the operating system are included in various 
+outputs such as the Ferret symbol `SESSION_DATE`, values of labels which are 
+written to the logs, or file attributes which are listed. These differences 
+may be ignored.
+
+2. Values of `PPL$XPIXEL` and `PPL$YPIXEL` will differ; these are computed 
+based on the display of the terminal where the benchmark job is run.
+
+3. If you are comparing a log from a different operating system, there 
+may be differences in the values of data in output. This might show up as 
+`missing_value=-9.9999998e+33f` vs `missing_value=-1.e-34f`, 
+or listings may differ in the least-significant positions. Differences of 
+that size are okay. 
+
+4. At the end of the log files, there is a collection of outputs from 
+`spawn ncdump file.nc` commands.  Differences in the form of ncdump output, 
+such as differently-placed commas, may exist especially if you are comparing 
+logs from different operating systems.
+
+5. Some benchmark scripts involve the output of a spawn command. The speed with 
+which this output is written to the log file may vary from run to run or from 
+system to system. Occasional garbled output is the result of this effect. 
+
diff --git a/bench/RUN_TESTS.sh b/bench/RUN_TESTS.sh
index d29e61c..16cc028 100755
--- a/bench/RUN_TESTS.sh
+++ b/bench/RUN_TESTS.sh
@@ -64,7 +64,7 @@ touch $log_file $ncdump_file
 touch F.cdf snoopy.dat
 
 # set up the binary unformatted stream test file as a machine-specific link
-machine_stream="stream10by5_${machine}.unf"
+machine_stream="data/stream10by5_${machine}.unf"
 if [ -r  $machine_stream ]; then
    rm -f stream_data_link.unf
    ln -s $machine_stream stream_data_link.unf
@@ -83,8 +83,8 @@ fi
 # set up proper stream testing jnl file - depends on endianness
 # pretty much everything is little endian now
 rm -f bn_test_stream.jnl
-ln -s bn_test_stream_little.jnl bn_test_stream.jnl
-# ln -s bn_test_stream_big.jnl bn_test_stream.jnl
+ln -s v5jnls/bn_test_stream_little.jnl bn_test_stream.jnl
+# ln -s v5jnls/bn_test_stream_big.jnl bn_test_stream.jnl
 
 echo "Testing log output in $log_file"
 echo "Testing errors in $err_file" 
@@ -116,18 +116,7 @@ fi
 
 # set up a generic data environment
 echo "****** Restricting Ferret paths to bench directory ******" >> $log_file
-FER_DATA="."
-export FER_DATA
-FER_DESCR="."
-export FER_DESCR
-FER_DSETS="."
-export FER_DSETS
-FER_DAT="."
-export FER_DAT
-FER_GRIDS="."
-export FER_GRIDS
-FER_DIR="."
-export FER_DIR
+. ./bench_environment.sh
 
 # always replace $HOME/.ferret with default.ferret so results are consistent
 rm -f keep.ferret
@@ -201,7 +190,7 @@ if [ "$ispyferret" -ne 0 ]; then
       echo "*** Running python script: $script" >> $err_file
       echo "*** Running python script: $script" > all_ncdump.out
       echo "Running python script: $script"
-      $fver $feropts -python < $script 1>> $log_file 2>> $err_file
+      $fver $feropts -python < pyscripts/$script 1>> $log_file 2>> $err_file
       if [ $? -ne 0 ]; then
          echo "****** PYFERRET error: $script failed ******" >> $log_file
          echo "****** PYFERRET error: $script failed ******" >> $err_file
@@ -232,27 +221,60 @@ exeferdir=`dirname $exebindir | sed -e 's/\\//\\\\\\//g'`
 echo "s/$exeferdir/....../g" >> $cleanups
 
 timeregex=`date +%_d.%h.%Y`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
+timeregex=`date +%_d.%h.%Y | tr [a-z] [A-Z]`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
 echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
 # If date assigned to symbol and then symbol used elsewhere, any beginning space is dropped
 timeregex=`date +%-d.%h.%Y`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
+timeregex=`date +%-d.%h.%Y | tr [a-z] [A-Z]`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
 echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
 
 timeregex=`date +%_d.%h.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+timeregex=`date +%_d.%h.%y | tr [a-z] [A-Z]`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
 echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
 echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
 # If date assigned to symbol and then symbol used elsewhere, any beginning space is dropped
 timeregex=`date +%-d.%h.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
 echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
 echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+timeregex=`date +%-d.%h.%y | tr [a-z] [A-Z]`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+
+timeregex=`date +%m.%d.%Y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/MM-DD-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/MM-DD-YYYY HH:MM/g" >> $cleanups
+echo "s/$timeregex/MM-DD-YYYY/g" >> $cleanups
 
 timeregex=`date +%m.%d.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/MM-DD-YY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/MM-DD-YY HH:MM/g" >> $cleanups
 echo "s/$timeregex/MM-DD-YY/g" >> $cleanups
 
 timeregex=`date | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
 echo "s/$timeregex/WKD MON DD HH:MM:SS ZZZ YYYY/g" >> $cleanups
+timeregex=`date | tr [a-z] [A-Z] | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
+echo "s/$timeregex/WKD MON DD HH:MM:SS ZZZ YYYY/g" >> $cleanups
 
 timeregex=`date +%a.%h.%_d.%T.%Y | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
 echo "s/$timeregex/WKD MON DD HH:MM:SS YYYY/g" >> $cleanups
+timeregex=`date +%a.%h.%_d.%T.%Y | tr [a-z] [A-Z] | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
+echo "s/$timeregex/WKD MON DD HH:MM:SS YYYY/g" >> $cleanups
 
 echo 's/^randu2_randn2 [0-9 .-]+$/randu2_randn2      ....../' >> $cleanups
 echo 's/the_time = [0-9][0-9]:[0-9][0-9]/the_time = HH:MM/g' >> $cleanups
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 54a280f..53b77ce 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -278,6 +278,10 @@ bn_cache_management.jnl
 bn_transp_choose.jnl
 bn_iin_regrid.jnl
 bn721_bug_fixes.jnl
+bn722_bug_fixes.jnl
+bn_tseries_modulo.jnl
+bn_huge_axis.jnl
+bn_save_as_global.jnl
 !
 ! bn_gif, bn_all_ef, and bn_startupfile at end
 !
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index 70bf695..65c61f8 100644
--- a/bench/ansley_official.rhel6-64_err
+++ b/bench/ansley_official.rhel6-64_err
@@ -1,33 +1,32 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley tmap 88045520 Sep  6 12:47 /home/users/ansley/build/trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/working/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley tmap 111678682 Nov 29 16:49 /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: fix for ticket 2560: @SUM in X
+Note: github issue 1843, size of strided axis
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
-FER_DAT=.
-FER_DATA=.
+FER_DATA=. ./data
 FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
+FER_DAT=/home/users/tmap/ferret/rhel6-x86_64-linux
+FER_DESCR=. ./data
 FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+FER_DSETS=. ./data
+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_GO=. ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . /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=. ./data
 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/trunk/FERRET/bench
+PWD=/home/users/ansley/build/working/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/rhel6-x86_64-linux/ext_func/pylibs
-Beginning at Wed Sep 6 12:57:37 PDT 2017
+Beginning at Wed Nov 29 17:31:49 PST 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
@@ -155,14 +154,14 @@ 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, in script ./bn_if.sub
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/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, in script ./bn_if.jnl
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/bn_if.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -580,7 +579,7 @@ 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
+             Data set: ./data/coads_clim_bad_delta.des
 set data coads_clim_bad_delta.des
  **TMAP ERR: error in line definition
              A gap or overlap exists in time axis
@@ -725,8 +724,10 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
-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 {6,6}
+ **ERROR: improper grid or axis definition: unrepairable repeated axis coords
+define axis/from/x/name=xax/edges {6,6}
  **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 ...
@@ -1142,12 +1143,12 @@ Replacing definition of axis Z1
 Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: DA2
-             Data set: ./bn_delimited_read_date_time.dat
+             Data set: ./data/bn_delimited_read_date_time.dat
            *** 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
+             Data set: ./data/bn_delimited_read_date_time.dat
            *** 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: ,,:
@@ -1247,7 +1248,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: regarding ./data/test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
  LISTing to file longaxspace.dat
 Replacing definition of axis XAX
@@ -1272,7 +1273,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: regarding ./data/test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
            *** NOTE: Axis is in use by grid (G015)
@@ -1337,6 +1338,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Not deleted: TIME1
            *** NOTE: Axis is in use by grid GHB1
            *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GJR1
+           *** NOTE: Not deleted: TIME5
+           *** NOTE: Axis is in use by grid GQO1
+           *** NOTE: Not deleted: TIME6
            *** NOTE: Axis is in use by grid GCQ1
            *** NOTE: Not deleted: TAX
            *** NOTE: Axis is in use by grid GFORMAT
@@ -1378,7 +1383,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: TIME5
+           *** NOTE: Not deleted: TIME3
            *** NOTE: Axis is in use by grid GLB1
            *** NOTE: Not deleted: COADSX
            *** NOTE: Axis is in use by grid GG
@@ -1398,7 +1403,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid G5DAY
            *** NOTE: Not deleted: PSYU
            *** NOTE: Axis is in use by grid G5DAY
-           *** NOTE: Not deleted: TIME4
+           *** NOTE: Not deleted: TIME7
            *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: TEST_IRREG
            *** NOTE: Axis is in use by grid (G015)
@@ -1467,6 +1472,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Not deleted: TIME1
            *** NOTE: Axis is in use by grid GHB1
            *** NOTE: Not deleted: TIME2
+           *** NOTE: Axis is in use by grid GJR1
+           *** NOTE: Not deleted: TIME5
+           *** NOTE: Axis is in use by grid GQO1
+           *** NOTE: Not deleted: TIME6
            *** NOTE: Axis is in use by grid GCQ1
            *** NOTE: Not deleted: TAX
            *** NOTE: Axis is in use by grid GFORMAT
@@ -1508,7 +1517,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: TIME5
+           *** NOTE: Not deleted: TIME3
            *** NOTE: Axis is in use by grid GLB1
            *** NOTE: Not deleted: COADSX
            *** NOTE: Axis is in use by grid GG
@@ -1528,7 +1537,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis is in use by grid G5DAY
            *** NOTE: Not deleted: PSYU
            *** NOTE: Axis is in use by grid G5DAY
-           *** NOTE: Not deleted: TIME4
+           *** NOTE: Not deleted: TIME7
            *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: PSZW
            *** NOTE: Axis is in use by grid G5_10
@@ -1690,9 +1699,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -2033
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
            *** NOTE: A dummy axis of subscripts will be used
-           *** NOTE: Coordinates missing on axis LATITUDE at subscript -2033
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
            *** 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
@@ -2417,7 +2426,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (PSZT1).positive
            *** NOTE: Changing the type of attribute (coadsx).modulo
            *** NOTE: Changing the value of attribute (coadsx).modulo
-           *** NOTE: Changing the value of attribute (TIME4).time_origin
+           *** NOTE: Changing the value of attribute (TIME7).time_origin
  **ERROR: command syntax: enclose coordinate variable name in parentheses
 list coadsx.units
  **ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2536,10 +2545,10 @@ Replacing definition of axis X2AX
  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
-           *** NOTE: Changing the value of attribute (TIME7).time_origin
+           *** NOTE: Changing the value of attribute (TIME12).units
+           *** NOTE: Changing the value of attribute (TIME12).units
+           *** NOTE: Changing the value of attribute (TIME12).time_origin
+           *** NOTE: Changing the value of attribute (TIME12).time_origin
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
@@ -2721,7 +2730,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME9
+Replacing definition of axis TIME16
            *** NOTE: grid GSQ1 used by data set coads_climatology
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
@@ -2804,9 +2813,9 @@ Starting test: bn_modnbd.jnl
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_fifty_files.jnl
-           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1187
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
            *** NOTE: A dummy axis of subscripts will be used
-           *** NOTE: Coordinates missing on axis LATITUDE at subscript -1187
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
            *** 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
@@ -2824,7 +2833,7 @@ Starting test: bn_fifty_files.jnl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
            *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
            *** NOTE: They will not be convertible:
-           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: regarding ./data/climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
@@ -3510,7 +3519,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
            *** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
            *** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
-           *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+           *** NOTE: TIME22: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
@@ -3962,6 +3971,72 @@ Bailing out of external function "eofsvd_space":
 
 Bailing out of external function "eofsvd_tfunc":
 	There are no spatial locations having complete time series.
+
+Bailing out of external function "eof_stat":
+	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_stat":
+	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -3975,10 +4050,57 @@ list eofsvd_stat(spacegap)
 list eofsvd_space(spacegap)
  **ERROR: error in external function
 list eofsvd_tfunc(spacegap)
+Replacing definition of axis XAXIS
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+ **ERROR: error in external function
+load eofs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
+ **ERROR: error in external function
+load tafs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_eof_simple2
+Replacing definition of axis YAXIS
+Replacing definition of axis TAXIS
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+ **ERROR: error in external function
+load eofs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
+ **ERROR: error in external function
+load tafs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -4383,7 +4505,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: regarding ./data/climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -4611,10 +4733,12 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
+Replacing definition of axis YAXIS
  **ERROR: request exceeds memory setting
 load bigvar
 Replacing definition of axis LONGTIME
@@ -4725,6 +4849,7 @@ list f
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_date1900_array
+Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -4745,9 +4870,9 @@ Starting test: bn_spawn_size
  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
+ **ERROR: value out of legal range: 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
+ **ERROR: value out of legal range: 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
@@ -5073,7 +5198,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: error in axis attributes
              Calendar definitions on T and F axes must match
-             Data file: ./ft_cal_one.nc
+             Data file: ./data/ft_cal_one.nc
 SET DAT/FORM=CDF ft_cal_mixed.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -5326,9 +5451,9 @@ go/garbage tmp/testMe
  **ERROR: unknown command qualifier: garbage
 go/garbage "tmp/testMe"
  **ERROR: unknown command qualifier: garbage
-go/garbage /home/users/ansley/build/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/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
@@ -5505,14 +5630,14 @@ 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: unrepairable repeated axis coords on axis xax at subscript 2
            *** NOTE: A dummy axis of subscripts will be used
-           *** NOTE: unrepairable repeated axis coords on axis yax at subscript -4161
+           *** NOTE: unrepairable repeated axis coords on axis yax at subscript 2
            *** 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
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v7jnls/unclosed_if.sub
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -6196,12 +6321,83 @@ Replacing definition of axis aline_edges
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn721_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: bn722_bug_fixes
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from 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 xaxis
+ 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_tseries_modulo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_huge_axis
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_as_global
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ **ERROR: invalid command: Multi-valued Global string attributes not implemented
+          Variable: multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+          Variable: SST
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+          Variable: SST
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -6326,4 +6522,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 Sep 6 13:02:20 PDT 2017
+Ended at Wed Nov 29 17:38:06 PST 2017
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index 1de5b5b..51f9501 100644
--- a/bench/ansley_official.rhel6-64_log
+++ b/bench/ansley_official.rhel6-64_log
@@ -1,28 +1,28 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley tmap 88045520 Sep  6 12:47 /home/users/ansley/build/trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/working/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley tmap 111678682 Nov 29 16:49 /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: fix for ticket 2560: @SUM in X
+Note: github issue 1843, size of strided axis
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
-FER_DAT=.
-FER_DATA=.
+FER_DATA=. ./data
 FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
+FER_DAT=/home/users/tmap/ferret/rhel6-x86_64-linux
+FER_DESCR=. ./data
 FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+FER_DSETS=. ./data
+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_GO=. ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . /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=. ./data
 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/trunk/FERRET/bench
+PWD=/home/users/ansley/build/working/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/rhel6-x86_64-linux/ext_func/pylibs
-Beginning at Wed Sep 6 12:57:37 PDT 2017
+Beginning at Wed Nov 29 17:31:49 PST 2017
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -174,10 +174,10 @@ GO bn_syntax
 USE gtbc011
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
 SHOW DATA
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  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
@@ -190,7 +190,7 @@ SHOW DATA
  
 SHOW DATA/VARIABLES
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -220,9 +220,9 @@ SHOW DATA/VARIABLES
  
   time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
  
-SHOW DATA/FILES
+SHOW DATA/MEMBERS
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  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
@@ -235,7 +235,7 @@ SHOW DATA/FILES
  
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -272,23 +272,23 @@ USE gtbc011
 USE gt4d011
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf
-    2> ./gt4d011.cdf  (default)
+    1> ./data/gtbc011.cdf
+    2> ./data/gt4d011.cdf  (default)
 SHOW DATA/BRIEF gtbc011
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
 ! ... save and restore data set
 SET DATA 1
 SET DATA/SAVE
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
-    2> ./gt4d011.cdf
+    1> ./data/gtbc011.cdf  (default)
+    2> ./data/gt4d011.cdf
 SET DATA 2
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf
-    2> ./gt4d011.cdf  (default)
+    1> ./data/gtbc011.cdf
+    2> ./data/gt4d011.cdf  (default)
 SET DATA/RESTORE
 CANCEL DATA/ALL
 ! ... EZ data sets
@@ -925,7 +925,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1]
              TIME: 15-MAR-1983 10:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -942,7 +942,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u]
              TIME: 15-MAR-1983 10:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -961,7 +961,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u[d=2]]
              TIME: 17-AUG-1982 12:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 1
@@ -975,7 +975,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=gtbc011,g=u[d=gt4d011]]
              TIME: 17-AUG-1982 12:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 1
@@ -1635,7 +1635,7 @@ show var/d=clim_airt_lev
      A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
 show data clim_airt_lev
      currently SET data sets:
-    1> ./clim_airt_lev.cdf  (default)
+    1> ./data/clim_airt_lev.cdf  (default)
  name     title                             I         J         K         L
  AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
@@ -1716,7 +1716,7 @@ set var/titl=test4 t4[d=snoopy.dat]
 set var/titl=test3 t3[d=snoopy.dat]
 show data
      currently SET data sets:
-    1> ./clim_airt_lev.cdf
+    1> ./data/clim_airt_lev.cdf
  name     title                             I         J         K         L
  AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
@@ -1729,7 +1729,7 @@ show data
  
 show data/full 1
      currently SET data sets:
-    1> ./clim_airt_lev.cdf
+    1> ./data/clim_airt_lev.cdf
  
  name     title                             I         J         K         L
  AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
@@ -9617,7 +9617,7 @@ GO bn_ez		! changed from bn200_ez 8/10/95
 FILE EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
@@ -9638,7 +9638,7 @@ LIST V1
  5   / 5:  0.478000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
  
@@ -9647,7 +9647,7 @@ SHOW DATA
 FILE/VAR="X1,X2" EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
@@ -9661,7 +9661,7 @@ SHOW DATA/FULL
  /SKIP = 0
  /COLUMNS = 2
 LIST X1,X2
-             DATA SET: ./EZ.DAT
+             DATA SET: ./data/EZ.DAT
              X: 0.5 to 5.5
  Column  1: X1
  Column  2: X2
@@ -9673,7 +9673,7 @@ LIST X1,X2
 5   / 5:  0.478000  0.533700
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
  X2       X2                               1:5       ...       ...       ...
@@ -9683,7 +9683,7 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
@@ -9717,7 +9717,7 @@ LIST X1
  15   / 15:  0.469000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
  X2       X2                               1:15      ...       ...       ...
@@ -9727,15 +9727,15 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:9       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:9.5  
+ X2       X2                               1:9       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:9.5  
  
  /FORMAT = FREE
  /SKIP = 2
@@ -9755,7 +9755,7 @@ LIST X1
  9   / 9:  0.469000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:9       ...       ...       ...
  X2       X2                               1:9       ...       ...       ...
@@ -9765,15 +9765,15 @@ SHOW DATA
 FILE/VAR="X1,-,X2"/COLUMNS=6/SKIP=2 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:9       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:9.5  
+ X2       X2                               1:9       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:9.5  
  
  /FORMAT = FREE
  /SKIP = 2
@@ -9790,7 +9790,7 @@ LIST X1
  6   / 6:  0.514700
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:6       ...       ...       ...
  X2       X2                               1:6       ...       ...       ...
@@ -9800,15 +9800,15 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2/FORMAT=(3(F14.0,F7.0)) EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:9       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:9.5  
+ X2       X2                               1:9       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:9.5  
  
  /FORMAT = (3(F14.0,F7.0))
  /SKIP = 2
@@ -9828,7 +9828,7 @@ LIST X1
  9   / 9:  0.469000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:9       ...       ...       ...
  X2       X2                               1:9       ...       ...       ...
@@ -9838,15 +9838,15 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6/SKIP=1/FORMAT="(3(F14.0,F7.0)/)" EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:12      ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:12.5  
+ X2       X2                               1:12      ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:12.5  
  
  /FORMAT = (3(F14.0,F7.0)/)
  /SKIP = 1
@@ -9863,7 +9863,7 @@ LIST X1
  6   / 6:  0.470000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:6       ...       ...       ...
  X2       X2                               1:6       ...       ...       ...
@@ -9873,7 +9873,7 @@ SHOW DATA
 SET VARIABLE/TITLE="first variable" X1
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       first variable                   1:6       ...       ...       ...
  X2       X2                               1:6       ...       ...       ...
@@ -9885,7 +9885,7 @@ DEFINE GRID/X=XEZ1/Y=EZ GEZ1
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ1 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:3       1:20480   ...       ...
@@ -9911,7 +9911,7 @@ LIST X1
  5   / 5:  0.478000  0.515000  0.469000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:3       1:5       ...       ...
  X2       X2                               1:3       1:5       ...       ...
@@ -9925,7 +9925,7 @@ DEFINE GRID/X=XEZ2/Y=YEZ/Z=ZEZ/T=EZ GEZ2
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ2 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:1       1:3       1:2       1:20480
@@ -9953,7 +9953,7 @@ LIST X1
  2   / 2:  0.435000  0.444000  0.470000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  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
@@ -9969,7 +9969,7 @@ DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:8       ...       ...       ...
@@ -9996,7 +9996,7 @@ LIST X1
  8   / 8:  0.000000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:8       ...       ...       ...
  X2       X2                               1:8       ...       ...       ...
@@ -10459,18 +10459,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
-DELTA_CPU = "10.3804"
-CLOCK_SECS = "12.144"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:57:49"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
+DELTA_CPU = "12.2161"
+CLOCK_SECS = "13.913"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:32:03"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
@@ -10491,18 +10491,18 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
-DELTA_CPU = "0.018998"
-CLOCK_SECS = "12.164"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:57:49"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
+DELTA_CPU = "0.018997"
+CLOCK_SECS = "13.933"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:32:03"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
@@ -10515,9 +10515,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
 SPAWN_OK = "1"
 SPAWN_STATUS = "0"
 S1 = "hello"
@@ -10529,17 +10529,17 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
 SPAWN_OK = "1"
 SPAWN_STATUS = "0"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
 SPAWN_OK = "1"
 SPAWN_STATUS = "0"
 S1 = "hello"
@@ -10575,9 +10575,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
 ! show the upper left coordinate limits labels as symbols
 plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
 show symbol lab*
-LAB1 = "FERRET (beta/debug) Ver.7.21"
+LAB1 = "FERRET (beta/debug) Ver.7.23"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "06-SEP-2017 12:57:49"
+LAB3 = "29-NOV-2017 17:32:03"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10672,18 +10672,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
-DELTA_CPU = "0.034994"
-CLOCK_SECS = "12.199"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:57:49"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
+DELTA_CPU = "0.040994"
+CLOCK_SECS = "13.974"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:32:03"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "201"
@@ -12328,7 +12328,7 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e-7
 ! multiple variable test
 set region/i=95:96/j=41:42/k=2/l=5
 LIST/FORMAT=comma/precision=5 u,v
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              LONGITUDE: 135.5W to 133.5W
              LATITUDE: 1.5S to 0.833S
              DEPTH (m): 15
@@ -14555,7 +14555,7 @@ list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijklave
 set data/format=cdf test_fil0
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -14743,7 +14743,7 @@ list/format=cdf/append/file=test_fil.cdf ijklave
 set data/format=cdf test_fil
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -14864,7 +14864,7 @@ set data reverse_axes
  
 show data/var
      currently SET data sets:
-    1> ./reverse_axes.cdf  (default)
+    1> ./data/reverse_axes.cdf  (default)
  
  name     title                             I         J         K         L
  FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
@@ -14881,7 +14881,7 @@ show data/var
  
 list/x=180 fcn_norm,fcn_rev
  WARNING: Listed variables have ambiguous coordinates on axes: Y
-             DATA SET: ./reverse_axes.cdf
+             DATA SET: ./data/reverse_axes.cdf
              LONGITUDE: 180E
  Column  1: FCN_NORM is COS(X/10)*SIN(Y/2)
  Column  2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -15076,7 +15076,7 @@ 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
              TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtsa056_1.cdf
+             DATA SET: ./data/gtsa056_1.cdf
  
  Total # of data points: 120 (6*5*2*2*1*1)
  # flagged as bad  data: 0
@@ -15105,7 +15105,7 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
              TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtsa056_1.cdf
+             DATA SET: ./data/gtsa056_1.cdf
  
  Total # of data points: 120 (6*5*2*2*1*1)
  # flagged as bad  data: 0
@@ -19275,7 +19275,7 @@ GO bn_mc
 !     - 11/06/97 - added a set mode/last verify
 CAN MODE VERIFY
      currently SET data sets:
-    1> ./coads_clim.des  (default)
+    1> ./data/coads_clim.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
@@ -19333,7 +19333,7 @@ CAN MODE VERIFY
              T (hour): 0.7575 to 4383.7
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_clim.des
+             DATA SET: ./data/coads_clim.des
  
  Total # of data points: 97200 (180*90*1*6*1*1)
  # flagged as bad  data: 44263
@@ -19342,7 +19342,7 @@ CAN MODE VERIFY
  Mean    value: 17.806 (unweighted average)
  Standard deviation: 9.6933
      currently SET data sets:
-    1> ./coads_clim.des
+    1> ./data/coads_clim.des
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
@@ -19351,7 +19351,7 @@ CAN MODE VERIFY
  
   time range: 366 to 4018.4
  
-    2> ./coads_clim_irreg.des  (default)
+    2> ./data/coads_clim_irreg.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
@@ -19400,7 +19400,7 @@ CAN MODE VERIFY
              T (hour): 0.7575 to 4383.7
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_clim_irreg.des
+             DATA SET: ./data/coads_clim_irreg.des
  
  Total # of data points: 48600 (180*90*1*3*1*1)
  # flagged as bad  data: 21459
@@ -19409,7 +19409,7 @@ CAN MODE VERIFY
  Mean    value: 17.359 (unweighted average)
  Standard deviation: 9.8799
      currently SET data sets:
-    1> ./coads_clim_missing_step1.des  (default)
+    1> ./data/coads_clim_missing_step1.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
@@ -19419,7 +19419,7 @@ CAN MODE VERIFY
   time range: 366 to 3287.9
  
      currently SET data sets:
-    1> ./coads_clim_missing_stepN.des  (default)
+    1> ./data/coads_clim_missing_stepN.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
@@ -23131,7 +23131,7 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
  PSXT1     LONGITUDE          160mr   130.5E               70.5W               full
  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
+ TIME7     TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  15-JAN-1982 14:00:00  73         14-JAN-1982 01:30:00    52632
@@ -23560,7 +23560,7 @@ set mem /size=10
 use weird_name1.cdf
 sh data
      currently SET data sets:
-    1> ./weird_name1.cdf  (default)
+    1> ./data/weird_name1.cdf  (default)
  name     title                             I         J         K         L
  v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
@@ -24924,7 +24924,7 @@ show axis/x xax
  
        I     X                   XBOX      XBOXLO
        1>  5.5                   1          5
-       2>  6.000001              1.E-06     6
+       2>  6                     7.5E-07    6
 define axis/from/x/name=xax/edges {6,6,7}
 show axis/x xax
  name       axis              # pts   start                end
@@ -25353,7 +25353,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Wed Sep  6 12:58:02 PDT 2017
+Wed Nov 29 17:32:17 PST 2017
  
 GO bn_reset
 cancel mode verify
@@ -25496,15 +25496,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
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#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 (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    (C01,V02 C:  7 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25539,11 +25539,11 @@ cancel memory/all
  -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
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:177 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25569,11 +25569,11 @@ cancel memory/all
  -DELETE SST      M:154 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M:174 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#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 (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25607,13 +25607,13 @@ cancel memory/all
  -DELETE A        M:177 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
  -DELETE A        M:181 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#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 (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25635,18 +25635,18 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1S   / 45:  28.1514  28.5607     ....
 let/quiet a = sst[i=30:40]
  -DELETE (C09,V02 M:163 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  -DELETE (C01,V02 M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
 cancel memory/all
  -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
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25670,9 +25670,9 @@ cancel memory/all
  -DELETE EX#1     M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  -DELETE SST      M:181 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30}     M:181 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25697,12 +25697,12 @@ cancel memory/all
  -DELETE A        M:175 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
  -DELETE EX#1     M:177 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#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 (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  eval    (C01,V02 C:  7 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
@@ -25732,16 +25732,16 @@ cancel memory/all
 let/quiet fsst = sst[x=@fln] 		! fill holes to allow @iin to work
 let/quiet a = fsst[i=@iin]		! @iin forces all-at-once
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
 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
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
  const_v {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25779,16 +25779,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 (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25812,16 +25812,16 @@ cancel memory/all
  -DELETE EX#1     M:173 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M:177 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:39]
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25849,16 +25849,16 @@ cancel memory/all
  -DELETE EX#1     M:174 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M:177 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:40]
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25884,16 +25884,16 @@ cancel memory/all
  -DELETE SST      M:163 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
  -DELETE SST      M:177 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 load/l=1/y=0 sst[I=30:41]
- dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
  const_v {30,...} M:163 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
@@ -25970,7 +25970,7 @@ Dynamic grids:
  ABSTRACT  X             99999999 r   1                    1.E+08
  (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -25992,7 +25992,7 @@ Dynamic grids:
  ABSTRACT  X             99999999 r   1                    1.E+08
  (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26155,9 +26155,9 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  getgrid EX#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 (G017)          ABSTRACT  COADSY    NORMAL    TIME4
- allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
+ allocate dynamic grid (G017)          ABSTRACT  COADSY    NORMAL    TIME7
  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
@@ -26743,7 +26743,7 @@ cancel memory/all
  
 SHOW DATA
      currently SET data sets:
-    1> ./bn_strides.cdf  (default)
+    1> ./data/bn_strides.cdf  (default)
  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
@@ -27564,7 +27564,7 @@ canc data/all
  dealloc  dynamic grid (G002)          (AX032)   (AX031)   (AX033)   TAX1_10
  -DELETE BIGVAR   M:179 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  dealloc  dynamic grid (G011)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  -DELETE UNE-NVAR M:170 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:180 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
  
@@ -27657,7 +27657,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_10
  -DELETE BIGVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
@@ -27748,7 +27748,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_10
  -DELETE BIGVAR   M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -27849,7 +27849,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
@@ -27947,7 +27947,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
@@ -28045,7 +28045,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   NORMAL    (AX032)
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
@@ -28143,7 +28143,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   NORMAL    (AX029)
  -DELETE XYTVAR   M:180 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28244,7 +28244,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   NORMAL
  -DELETE XYTVAR   M:170 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28293,7 +28293,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28327,7 +28327,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   TAX1_6
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28361,7 +28361,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   TAX1_6
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
@@ -28393,7 +28393,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
  -DELETE MIDVAR   M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/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
@@ -28428,7 +28428,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
  -DELETE MIDVAR   M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
@@ -28460,7 +28460,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX033)   (AX031)   (AX032)   ZAX1_7
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28494,7 +28494,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G011)          (AX031)   (AX033)   (AX029)   ZAX1_7
  -DELETE MIDVAR   M:180 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 GO bn_reset bn_non_COARDS_netCDF	
 cancel mode verify
@@ -28511,7 +28511,7 @@ use non_COARDS
  
 show data
      currently SET data sets:
-    1> ./non_COARDS.cdf  (default)
+    1> ./data/non_COARDS.cdf  (default)
  name     title                             I         J         K         L
  UNORDERED_AXIS
           disordered axis                  1:5       ...       ...       ...
@@ -28619,7 +28619,7 @@ show grid MASKED_SST
  COADSX1   LONGITUDE          180 r   1E                   180E                full
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
- TIME4     TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
+ TIME7     TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
 show grid COADSX
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -28637,7 +28637,7 @@ show grid COADSY
  
 show data
      currently SET data sets:
-    1> ./non_COARDS.cdf  (default)
+    1> ./data/non_COARDS.cdf  (default)
  name     title                             I         J         K         L
  UNORDERED_AXIS
           disordered axis                  1:5       ...       ...       ...
@@ -28735,7 +28735,7 @@ 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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -28746,7 +28746,7 @@ stat $1
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -28755,7 +28755,7 @@ stat $1
  Mean    value: 16.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -28767,7 +28767,7 @@ stat $1
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -28778,7 +28778,7 @@ stat $1
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -28790,17 +28790,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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28810,7 +28810,7 @@ stat $1[gx=xtrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28819,7 +28819,7 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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
@@ -28832,15 +28832,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28850,7 +28850,7 @@ stat $1[gx=xtrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28863,21 +28863,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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 (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  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 (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28886,7 +28886,7 @@ stat $1x
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28895,7 +28895,7 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -28907,7 +28907,7 @@ stat $1x
  -DELETE I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  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
  
@@ -28918,7 +28918,7 @@ stat $1x
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28928,22 +28928,22 @@ stat $1x
  Standard deviation: 9.8848
  
 define grid/x=xtrop gx
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -DELETE SSTX     M:173 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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 (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28953,7 +28953,7 @@ stat $1[g=gx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28962,7 +28962,7 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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
@@ -28975,15 +28975,15 @@ stat $1[g=gx]
  -DELETE I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28993,7 +28993,7 @@ stat $1[g=gx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29005,19 +29005,19 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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 (G010)          XTROP     YTROP     NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29027,7 +29027,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29036,7 +29036,7 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  -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
@@ -29049,16 +29049,16 @@ stat $1[gx=xtrop,gy=ytrop]
  -DELETE I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  strip regrid on X: SST --> (G010)           @LIN
  found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
  regrid  SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29068,7 +29068,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29079,13 +29079,13 @@ 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 (G010)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     YTROP     NORMAL    TIME7
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      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
@@ -29101,7 +29101,7 @@ stat $1[g=gxyt]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29110,7 +29110,7 @@ stat $1[g=gxyt]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29133,7 +29133,7 @@ stat $1[g=gxyt]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29146,7 +29146,7 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
 stat $1xyt
  !-> stat sstxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#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
@@ -29160,7 +29160,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29169,7 +29169,7 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29191,7 +29191,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29202,9 +29202,9 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  -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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
 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
@@ -29220,7 +29220,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29229,7 +29229,7 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29251,7 +29251,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29262,9 +29262,9 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
@@ -29278,7 +29278,7 @@ stat $1[x=@ave]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29287,7 +29287,7 @@ stat $1[x=@ave]
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29299,7 +29299,7 @@ stat $1[x=@ave]
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -29310,7 +29310,7 @@ stat $1[x=@ave]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29323,11 +29323,11 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sstxave = sst[x=@ave]
 stat $1xave
  !-> stat sstxave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -29339,7 +29339,7 @@ stat $1xave
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29348,7 +29348,7 @@ stat $1xave
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29360,7 +29360,7 @@ stat $1xave
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -29371,7 +29371,7 @@ stat $1xave
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29382,9 +29382,9 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -29400,7 +29400,7 @@ stat $1[x=@sbx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29409,7 +29409,7 @@ stat $1[x=@sbx]
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29421,7 +29421,7 @@ stat $1[x=@sbx]
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -29433,7 +29433,7 @@ stat $1[x=@sbx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29446,11 +29446,11 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
 stat $1sbx
  !-> stat sstsbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -29462,7 +29462,7 @@ stat $1sbx
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29471,7 +29471,7 @@ stat $1sbx
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29483,7 +29483,7 @@ stat $1sbx
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -29494,7 +29494,7 @@ stat $1sbx
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29513,11 +29513,11 @@ GO bn_cache_hits.sub sst5
  
 stat $1
  !-> stat sst5
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -29531,7 +29531,7 @@ stat $1
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -29540,7 +29540,7 @@ stat $1
  Mean    value: 21.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29552,7 +29552,7 @@ stat $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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -29563,7 +29563,7 @@ stat $1
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -29575,17 +29575,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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST5 --> (G010)           @LIN
  found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SST+5
              regrid: 1 deg on X
@@ -29595,7 +29595,7 @@ stat $1[gx=xtrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29604,7 +29604,7 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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
@@ -29617,15 +29617,15 @@ stat $1[gx=xtrop]
  -DELETE I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST5 --> (G010)           @LIN
  found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SST+5
              regrid: 1 deg on X
@@ -29635,7 +29635,7 @@ stat $1[gx=xtrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29648,21 +29648,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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 (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  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 (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  strip regrid on X: SST5 --> (G010)           @LIN
  found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid  SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29671,7 +29671,7 @@ stat $1x
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29680,7 +29680,7 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29692,7 +29692,7 @@ stat $1x
  -DELETE I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  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
  
@@ -29703,7 +29703,7 @@ stat $1x
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29715,15 +29715,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  found   SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SST+5
              regrid: 1 deg on X
@@ -29733,7 +29733,7 @@ stat $1[g=gx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29742,7 +29742,7 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29754,13 +29754,13 @@ stat $1[g=gx]
  -DELETE I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  found   SST5     M:152 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  
              SST+5
              regrid: 1 deg on X
@@ -29770,7 +29770,7 @@ stat $1[g=gx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29782,7 +29782,7 @@ stat $1[g=gx]
 define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      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
@@ -29798,7 +29798,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29807,7 +29807,7 @@ 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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29830,7 +29830,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29841,12 +29841,12 @@ 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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      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
@@ -29859,7 +29859,7 @@ stat $1[g=gxyt]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29868,7 +29868,7 @@ stat $1[g=gxyt]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29891,7 +29891,7 @@ stat $1[g=gxyt]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29904,7 +29904,7 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
 stat $1xyt
  !-> stat sst5xyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#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
@@ -29918,7 +29918,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29927,7 +29927,7 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -29949,7 +29949,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29960,27 +29960,27 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  -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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  -DELETE SST5X    M:150 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
- dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G010)          XTROP     COADSY    NORMAL    TIME7
  -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  -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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
 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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -29998,7 +29998,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -30007,7 +30007,7 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -30029,7 +30029,7 @@ stat $1xyt
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -30040,9 +30040,9 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -30059,7 +30059,7 @@ stat $1[x=@ave]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -30068,7 +30068,7 @@ stat $1[x=@ave]
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -30080,7 +30080,7 @@ stat $1[x=@ave]
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -30091,7 +30091,7 @@ stat $1[x=@ave]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -30104,11 +30104,11 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
 stat $1xave
  !-> stat sst5xave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -30120,7 +30120,7 @@ stat $1xave
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -30129,7 +30129,7 @@ stat $1xave
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -30141,7 +30141,7 @@ stat $1xave
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -30152,7 +30152,7 @@ stat $1xave
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -30163,9 +30163,9 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -30181,7 +30181,7 @@ stat $1[x=@sbx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30190,7 +30190,7 @@ stat $1[x=@sbx]
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -30202,7 +30202,7 @@ stat $1[x=@sbx]
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -30214,7 +30214,7 @@ stat $1[x=@sbx]
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30227,11 +30227,11 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
 stat $1sbx
  !-> stat sst5sbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
@@ -30243,7 +30243,7 @@ stat $1sbx
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30252,7 +30252,7 @@ stat $1sbx
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  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
@@ -30264,7 +30264,7 @@ stat $1sbx
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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
  
@@ -30275,7 +30275,7 @@ stat $1sbx
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30297,7 +30297,7 @@ 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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#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
@@ -30331,18 +30331,18 @@ let a = XSEQUENCE(j[j=1:5])
  -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  -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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME7
  -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
 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
@@ -30520,7 +30520,7 @@ cancel mode verify
  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
+ canceling dset ./data/coads_climatology.cdf
  -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
@@ -30670,7 +30670,7 @@ show grid gg1
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
 cancel variable f
@@ -30680,7 +30680,7 @@ show grid gg2
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
  (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -30719,7 +30719,7 @@ show grid
  (AX026)   LONGITUDE          301 r   0E                   30E                 full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -30731,7 +30731,7 @@ show grid
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
  (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
 show grid/dynamic
 Dynamic grids:
     GRID (G012)                          use count:   1
@@ -30739,7 +30739,7 @@ Dynamic grids:
  COADSX    LONGITUDE          180mr   21E                  19E(379)
  (AX018)   LATITUDE           201 r   10S                  10N
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME7     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
 ! deliberate errors
 set mode ignore
@@ -31207,7 +31207,7 @@ list/l=1:4 sst
  17-MAR      / 3:  28.3538
  16-AUG      / 4:     ....
 list/l=1:4 jsst, nsst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              TIME: JAN to APR JULIAN
              LONGITUDE: 179E
              LATITUDE: 1S
@@ -34532,7 +34532,7 @@ let tsorted_indices = sorti( sst[i=61:66,y=39,z=0,l=2])
 let tsorted_sst = samplei(sst, tsorted_indices)
  
 list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              X: 0.5 to 6.5
              TIME: FEB
  Column  1: TSORTED_INDICES[Y=39N] is SORTI( SST[I=61:66,Y=39,Z=0,L=2])
@@ -34624,7 +34624,7 @@ let tsorted_indices = sortj( sst[j=65:70,x=141,z=0,l=2])
 let tsorted_sst = samplej(sst, tsorted_indices)
  
 list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              Y: 0.5 to 6.5
              TIME: FEB
  Column  1: TSORTED_INDICES[X=141E] is SORTJ( SST[J=65:70,X=141,Z=0,L=2])
@@ -34799,7 +34799,7 @@ let tsorted_indices = sortl(sst)
 let tsorted_sst = samplel(sst, tsorted_indices[x=141,y=39,z=0])
  
 list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              T: 0.5 to 3.5
              LONGITUDE: 141E
              LATITUDE: 39N
@@ -34888,7 +34888,7 @@ list vwnd
 let tsorted_indices = sortl(vwnd)
 let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
 list tsorted_indices, tsorted_wnd
-             DATA SET: ./coads_vwnd.cdf
+             DATA SET: ./data/coads_vwnd.cdf
              T: 0.5 to 61
              LONGITUDE: 161W
              LATITUDE: 39N
@@ -34987,7 +34987,7 @@ stat tsorted_wnd
              T: 0.5 to 61
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_vwnd.cdf
+             DATA SET: ./data/coads_vwnd.cdf
  
  Total # of data points: 60 (1*1*1*60*1*1)
  # flagged as bad  data: 60
@@ -35066,7 +35066,6 @@ go bench_eof
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
  
- 
 ! Test the bail-out from eof_space, eof_stat, eof_tfunc
 set mode ignore
  
@@ -35123,7 +35122,7 @@ list/i=1:2 eoftime
  15-FEB      / 2:  0.08800  1.41147
  17-MAR      / 3: -1.26637 -0.62953
  
- 
+! The functions need updating for double precision Ferret
 exit/script
  
 GO bn_reset
@@ -35649,7 +35648,7 @@ stat mapped
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./tripolar_subset.nc
+             DATA SET: ./data/tripolar_subset.nc
  
  Total # of data points: 451 (41*11*1*1*1*1)
  # flagged as bad  data: 79
@@ -35683,7 +35682,7 @@ list/L=15:20 tax_datestring(t[gt=temp],temp,"day")
  05-DEC-1982 00 / 19:"05-DEC-1982"
  11-DEC-1982 02 / 20:"11-DEC-1982"
 list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: NOV-1982 to DEC-1982
  Column  1: TAX_DAYFRAC(T[GT=TEMP],TEMP)
  Column  2: EX#2 is TAX_DAYFRAC(T[GT=TEMP],TEMP)*24.
@@ -35695,7 +35694,7 @@ list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
 05-DEC-1982 00 / 19:  0.000000   0.0000
 11-DEC-1982 02 / 20:  0.083333   2.0000
 list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: NOV-1982 to DEC-1982
  Column  1: TAX_DAY(T[GT=TEMP],TEMP)
  Column  2: TAX_JDAY(T[GT=TEMP],TEMP)
@@ -35707,7 +35706,7 @@ list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
 05-DEC-1982 00 / 19:   5.0000  339.000
 11-DEC-1982 02 / 20:  11.0000  345.000
 list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: NOV-1982 to DEC-1982
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
@@ -35768,7 +35767,7 @@ use coads_climatology
 ! SAMPLEXY will interpolate to geth the result,
 ! SAMPLEIJ requires an exact match.
 list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {1,1,1})
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              X: 0.5 to 3.5
              TIME: JAN
  Column  1: EX#1 is SAMPLEXY(SST,{321,323.5,325}, {1,1,1})
@@ -37201,7 +37200,7 @@ GO bn_delimited_read
 ! test delimiited (spreadsheet) reads in Ferret
  
 ! look at the file
-spawn cat bn_delimited_read_1.dat
+spawn cat data/bn_delimited_read_1.dat
 col1,col2,col3,col4,col5
 one,,1.1,24S,130E,,1e1,"word 1"
     two,,2.2,24N,130W,2S,,"word 2"
@@ -37215,7 +37214,7 @@ extra line
 file/format=delim bn_delimited_read_1.dat
 show data/var
      currently SET data sets:
-    1> ./bn_delimited_read_1.dat  (default)
+    1> ./data/bn_delimited_read_1.dat  (default)
  
  name     title                             I         J         K         L
  V1       V1                               1:7       ...       ...       ...
@@ -37271,7 +37270,7 @@ show data/var
  
  /DELIMITERS="\t,\,"
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 7.5
  Column  1: V1
  Column  2: V2
@@ -37295,7 +37294,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 ! manually name the variables while still automatically analyzing data types
 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
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 7.5
  Column  1: A1 is a1
  Column  2: A2 is a2
@@ -37317,7 +37316,7 @@ list a1,a2,a3,a4,a5,a6,a7
 ! note that v3 is correctly analyzed as numeric
 file/format=delim/skip=1 bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1
  Column  2: V2 is V2 (all values missing)
@@ -37340,7 +37339,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1
  Column  2: V2
@@ -37364,16 +37363,16 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 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)
+    1> ./data/bn_delimited_read_1.dat  (default)
  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       ...       ...       ...
+ A1       a1                               1:6       ...       ...       ...
+ A2       a2                               1:6       ...       ...       ...
+ A3       a3                               1:6       ...       ...       ...
+ A4       a4                               1:6       ...       ...       ...
+ A5       a5                               1:6       ...       ...       ...
  
 list a1,a2,a3,a4,a5
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: A1 is a1
  Column  2: A2 is a2
@@ -37391,7 +37390,7 @@ list a1,a2,a3,a4,a5
 ! insist that all columns be treated as numeric
 file/format=delim/skip=1/type=numeric bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1
  Column  2: V2
@@ -37414,7 +37413,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1 is V1 (degrees_north)(Latitude)
  Column  2: V2 is V2 (degrees_north)(Latitude)
@@ -37435,14 +37434,14 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 6   / 6: .... ....     ....     ....     ....     ....     .... .... ....     ....
  
 ! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
+spawn head -1 data/bn_delimited_read_1.dat
 col1,col2,col3,col4,col5
 define axis/x=1:1:1 x1
 define grid/x=x1 g1
 columns/grid=g1 bn_delimited_read_1.dat
  ! note 10 columns because auto-analysis of file doesnt stop at 1st record
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 1
  Column  1: V1
  Column  2: V2
@@ -37458,7 +37457,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 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
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 1
  Column  1: C1 is c1
  Column  2: C2 is c2
@@ -37478,14 +37477,14 @@ cancel data/all
 file/form=delimited bn_delimited_read_2.dat
 show data
      currently SET data sets:
-    1> ./bn_delimited_read_2.dat  (default)
+    1> ./data/bn_delimited_read_2.dat  (default)
  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)
+    1> ./data/bn_delimited_read_2.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:3       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37495,7 +37494,7 @@ show data
        (all values missing)
  
 list v1,v2
-             DATA SET: ./bn_delimited_read_2.dat
+             DATA SET: ./data/bn_delimited_read_2.dat
              X: 0.5 to 3.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (hours)(Time of day)
@@ -37506,7 +37505,7 @@ list v1,v2
  
 ! ==========
 ! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
+spawn cat data/bn_delimited_read_date_time.dat
 12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
 12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
 12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37516,7 +37515,7 @@ spawn cat bn_delimited_read_date_time.dat
 ! Note that record 3 has syntax errors in the first 4 fields
 columns bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37533,7 +37532,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4: "12/4/99"  "1999-03-04"  "03:00"      "16:45:36.5"  36496.0  36221.0   3.0000  16.7601
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
  V2       V2                               1:4       ...       ...       ...
@@ -37565,7 +37564,7 @@ T0 = 1-JAN-1900
  
 columns/type=date bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37582,7 +37581,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4:  36496.0  36221.0 .... ....  36496.0  36221.0 .... ....
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37604,7 +37603,7 @@ show data 2
  
 columns/type=time bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (hours)(Time of day)
  Column  2: V2 is V2 (hours)(Time of day)
@@ -37621,7 +37620,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4: .... ....   3.0000  16.7601 .... ....   3.0000  16.7601
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Time of day)
@@ -37643,7 +37642,7 @@ show data 2
  
 columns/type="da,dat,ti,tim,date, date, time, time"  bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37660,7 +37659,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4:  36496.0  36221.0   3.0000  16.7601  36496.0  36221.0   3.0000  16.7601
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37682,7 +37681,7 @@ show data 2
  
 columns/type="da,-,ti,-,date,-,time,-"  bn_delimited_read_date_time.dat
 list v1,v3,v5,v7
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V3 is V3 (hours)(Time of day)
@@ -37695,7 +37694,7 @@ list v1,v3,v5,v7
 4   / 4:  36496.0   3.0000  36496.0   3.0000
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37710,7 +37709,7 @@ show data 2
 ! delimiters can be used to break up individual fields
 file/form=delim/delim="/" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37722,7 +37721,7 @@ list V1,V2,V3,V4
 3   / 3:  12.0000  3.00000 "99x,1999-03-03x,2:00x, 15:45x,12"         3.00000
 4   / 4:  12.0000  4.00000 "99,1999-03-04,03:00, 16:45:36.5, 12"      4.00000
 ! ---
-sp cat bn_delimited_read_date_time.dat
+sp cat data/bn_delimited_read_date_time.dat
 12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
 12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
 12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37730,7 +37729,7 @@ sp cat bn_delimited_read_date_time.dat
 ! ---
 file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37747,7 +37746,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8
 4   / 4:  12.0000  4.00000 "99"  "1999-03-04"  "03:00"      "16:45:36.5"  12.0000  4.00000
  file/form=delim/delim="/,\,,-" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37766,7 +37765,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
 4   / 4:  12.0000  4.00000 "99"   1999.00  3.00000 "04"  "03:00"      "16:45:36.5"  12.0000  4.00000
  file/form=delim/delim="/,\,,-,:" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37789,377 +37788,377 @@ cancel data/all
 columns/skip=1 bn_delimited_read_CO2.dat
 show data/full
      currently SET data sets:
-    1> ./bn_delimited_read_CO2.dat  (default)
+    1> ./data/bn_delimited_read_CO2.dat  (default)
  
  name     title                             I         J         K         L
- V1       V1                               1:20      ...       ...       ...
+ V1       V1                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V2       V2                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V3       V3                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V4       V4                               1:19      ...       ...       ...
        (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      ...       ...       ...
+             X=0.5:19.5  
+ V5       V5                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V6       V6                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V7       V7                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V8       V8                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V9       V9                               1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V10      V10                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V11      V11                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V12      V12                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V13      V13                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V14      V14                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V15      V15                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V16      V16                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V17      V17                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V18      V18                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V19      V19                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V20      V20                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V21      V21                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V22      V22                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V23      V23                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V24      V24                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V25      V25                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V26      V26                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V27      V27                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V28      V28                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V29      V29                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V30      V30                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V31      V31                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V32      V32                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V33      V33                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V34      V34                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V35      V35                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V36      V36                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V37      V37                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V38      V38                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V39      V39                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V40      V40                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V41      V41                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V42      V42                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V43      V43                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V44      V44                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V45      V45                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V46      V46                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V47      V47                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V48      V48                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V49      V49                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V50      V50                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V51      V51                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V52      V52                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V53      V53                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V54      V54                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V55      V55                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V56      V56                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V57      V57                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V58      V58                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V59      V59                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V60      V60                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V61      V61                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V62      V62                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V63      V63                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V64      V64                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V65      V65                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V66      V66                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V67      V67                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V68      V68                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V69      V69                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V70      V70                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V71      V71                              1:19      ...       ...       ...
             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      ...       ...       ...
+             X=0.5:19.5  
+ V72      V72                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
-             X=0.5:20.5  
+             X=0.5:19.5  
  
  /DELIMITERS="\t,\,"
  /FORMAT = DELIMITED
  /SKIP = 1
  /COLUMNS = 72
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
-             DATA SET: ./bn_delimited_read_CO2.dat
+             DATA SET: ./data/bn_delimited_read_CO2.dat
              X: 0.5 to 19.5
  Column  1: V1
  Column  2: V2
@@ -38208,7 +38207,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,
 18   / 18: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00   999.00   4.9587  34.4055  0.00000  19.0000  0.000000  1.00000  1008.40  186.926  0.000000  30.2768  0.00000  0.000000  0.00000  36.3870  0.00000  2.15272  0.00000  0.42900
 19   / 19: "I8SI9S"  4.00000 "B"  34671.0  94.9940 -30.3000  1945.00  1098.00   4.3083  34.4383  0.00000  18.0000  0.000000  1.00000  1109.00  171.821  0.000000  32.2020  0.00000  0.000000  0.00000  50.4537  0.00000  2.29735  0.00000  0.19800
 list/i=8:14 v11,v19,v21,v23,v25
-             DATA SET: ./bn_delimited_read_CO2.dat
+             DATA SET: ./data/bn_delimited_read_CO2.dat
              X: 7.5 to 14.5
  Column  1: V11
  Column  2: V19
@@ -38225,7 +38224,7 @@ list/i=8:14 v11,v19,v21,v23,v25
 14   / 14:  0.00000  0.00000  0.00000  0.00000  0.00000
 (set variable/bad=9 v11; set variable/bad=9 v19;set variable/bad=9 v21;set variable/bad=9 v23;set variable/bad=9 v25)
 list/i=8:14 v11,v19,v21,v23,v25
-             DATA SET: ./bn_delimited_read_CO2.dat
+             DATA SET: ./data/bn_delimited_read_CO2.dat
              X: 7.5 to 14.5
  Column  1: V11
  Column  2: V19
@@ -41213,15 +41212,11 @@ GO bn_modulo_attribute
 ! Modulo attribute can take numerical values to indicate
 ! the modulo length of axis (subspan modulo changes)
 ! This script tests various string values of the attribute
- 
+! *acm* list the axis names, otherwise get random TIME* axes defined right now
 use modulo_lon_time
  
-sh ax lon*
+sh ax lon_true, lon_moderr, lon_false, lon_mod_nounits, lon_usual
  name       axis              # pts   start                end
- LON_FIELD_J_AXIS Y             2 r   50                   65
-   Axis span (to cell edges) = 30
- LON_FIELD_I_AXIS X             7 r   160                  208
-   Axis span (to cell edges) = 56
  LON_TRUE  LONGITUDE            5mr   1.875W(-1.875)       13.125E
    Axis span (to cell edges) = 18.75 (modulo length = 360)
  LON_MODERR X (meters)          5 r   0                    15
@@ -41232,16 +41227,8 @@ sh ax lon*
    Axis span (to cell edges) = 18.75 (modulo length = axis span)
  LON_USUAL LONGITUDE            5mr   0E                   15E
    Axis span (to cell edges) = 18.75 (modulo length = 360)
-sh ax tim*
+sh ax time_true, time_moderr, time_false, time_mod_nounits, time_usual
  name       axis              # pts   start                end
- TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25
-T0 = 01-JAN-1900
-   Axis span (to cell edges) = 4382.91
- TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56
-T0 = 01-JAN-1900
-   Axis span (to cell edges) = 4382.91
- TIME      T (HOURS)           20 r   1                    20
-   Axis span (to cell edges) = 20
  TIME_TRUE T (days)             4mi   30                   150
 T0 = %%
    Axis span (to cell edges) = 165 (modulo length = axis span)
@@ -41257,13 +41244,6 @@ T0 = %%
  TIME_USUAL T (days)            4mr   120                  150
 T0 = %%
    Axis span (to cell edges) = 40 (modulo length = axis span)
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
- TIME5     TIME                 2mr   16-MAY 23:56         16-JUN 10:25
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 1460.97 (modulo length = 8765.82)
- 
  
 GO bn_reset bn550_bug_fixes
 cancel mode verify
@@ -41517,10 +41497,10 @@ GO err550_nc_seconds.jnl
 use time_axis_seconds.nc
  
 sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
+sp ncdump data/time_axis_seconds.nc | grep origin >> all_ncdump.out
 list t[gt=height]    ! Seconds should be 36, 37, 38...
              VARIABLE : T
-                        axis TIME3
+                        axis TIME4
              FILENAME : time_axis_seconds.nc
              SUBSET   : 5 points (TIME)
  10-JUN-1996 04:03:36 / 1:  0.00000
@@ -41741,7 +41721,7 @@ GO err551_invalid_calendar.jnl
 set data err_calendar.nc
 sh data
      currently SET data sets:
-    1> ./err_calendar.nc  (default)
+    1> ./data/err_calendar.nc  (default)
  name     title                             I         J         K         L
  TIME     observation time                 ...       ...       ...       1:12
        (invalid coordinate axis)
@@ -42469,7 +42449,6 @@ GO bn_eof_4d.jnl
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
  
- 
 ! dataset with 4 dimensions; compute EOF at each vertical level.
  
 use gt4d011.cdf
@@ -42667,7 +42646,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
  4   / 4:  0.00175
  5   / 5:  0.00020
  
- 
+! The functions need updating for double precision Ferret
 exit/script
  
 GO bn_reset bn_abstract_axis_names.jnl
@@ -42943,7 +42922,7 @@ USE levitus_climatology.cdf
  
 SHO DATA/XML
 <datasets>
-<dataset name="./levitus_climatology.cdf" default="true">
+<dataset name="./data/levitus_climatology.cdf" default="true">
 <title> </title>
 <var name="TEMP" />
 </dataset>
@@ -43276,7 +43255,7 @@ SHOW VAR/XML
 </attribute>
 <grid name="GSI1">
 <axes>
-<taxis>TIME6</taxis>
+<taxis>TIME8</taxis>
 </axes>
 </grid>
 </var>
@@ -44070,7 +44049,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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:249 dset:   1 I:    131    140  J:   46   70  K: -999 -999  L:      1      1
@@ -44083,7 +44062,7 @@ 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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      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
@@ -44092,7 +44071,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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:239 dset:   1 I:    131    155  J:   46   70  K: -999 -999  L:      1      1
@@ -44105,7 +44084,7 @@ 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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  getgrid EX#1     C:  5 dset:   1 I:      1      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
@@ -44114,7 +44093,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  -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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME7
  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:230 dset:   1 I:    131    170  J:   46   70  K: -999 -999  L:      1      1
@@ -44598,10 +44577,10 @@ can mem/all
 def grid/like=taux agrid
  dealloc  dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
  getgrid EX#1     C:  6 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
+ allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME9
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
- dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
+ dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME9
  dealloc  dynamic grid (G015)          (AX023)   (AX013)   NORMAL    (AX033)
 load a
  getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
@@ -44625,7 +44604,7 @@ can mem/all
 can data/all
  dealloc  dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
  dealloc  dynamic grid (G015)          (AX013)   (AX023)   NORMAL    (AX024)
- canceling dset ./gtsa056_2.cdf
+ canceling dset ./data/gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44654,7 +44633,7 @@ define grid/like=xytvar egrid
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
 canc data/all
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
  
 ! cache hit from full region cache -- bypass use of strides
@@ -44947,7 +44926,7 @@ canc data/all
  dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
  -DELETE BIGVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  dealloc  dynamic grid (G004)          (AX046)   YAX1_30   ZAX1_20   TAX1_10
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
@@ -44980,7 +44959,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_10
  -DELETE BIGVAR   M:244 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -45056,7 +45035,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX048)   (AX047)   NORMAL    (AX045)
  -DELETE XYTVAR   M:244 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -45100,7 +45079,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   NORMAL
  -DELETE XYTVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
  
 cancel region; set region/l=1
@@ -45135,7 +45114,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   TAX1_6
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -45169,7 +45148,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   TAX1_6
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
@@ -45201,7 +45180,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
  -DELETE MIDVAR   M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/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
@@ -45236,7 +45215,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
  -DELETE MIDVAR   M:245 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
@@ -45268,7 +45247,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX048)   (AX047)   (AX045)   ZAX1_7
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -45302,7 +45281,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G004)          (AX047)   (AX048)   (AX046)   ZAX1_7
  -DELETE MIDVAR   M:244 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -45873,14 +45852,14 @@ can mode ignore
  
 use coads_climatology
 list/x=181/y=1/form=(f6.2, 3f10.4) sst, t[gt=sst], tboxlo[gt=sst], tboxhi[gt=sst]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              TIME: JAN to APR
              LONGITUDE: 179W
              LATITUDE: 1N
  Column  1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column  2: T is T (axis TIME4)
- Column  3: TBOXLO is TBOXLO (axis TIME4)
- Column  4: TBOXHI is TBOXHI (axis TIME4)
+ Column  2: T is T (axis TIME7)
+ Column  3: TBOXLO is TBOXLO (axis TIME7)
+ Column  4: TBOXHI is TBOXHI (axis TIME7)
  28.28  366.0000    0.7575  731.2425
  28.42 1096.4850  731.2425 1461.7275
  28.05 1826.9700 1461.7275 2192.2125
@@ -46009,7 +45988,7 @@ can data/all
  
 use gappy_bounds.nc
 list/prec=7 a, t[gt=a], tboxlo[gt=a], tboxhi[gt=a]
-             DATA SET: ./gappy_bounds.nc
+             DATA SET: ./data/gappy_bounds.nc
              TIME: JAN-1990 to JAN-1990
  Column  1: A is SST[X=150:180 at AVE,Y=-10:0 at AVE]
  Column  2: T is T (axis TGAP)
@@ -47816,7 +47795,7 @@ GO err570_sh_dat_nan.jnl
 use nan_missing.nc
 show data/full
      currently SET data sets:
-    1> ./nan_missing.nc  (default)
+    1> ./data/nan_missing.nc  (default)
      NCEP Ocean Analysis
  name     title                             I         J         K         L
  TEMP     temperature                      1:1       1:1       1:19      1:1
@@ -48106,11 +48085,11 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.21
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.23
  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  @AS06-SEP-2017 12:58:50
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS29-NOV-2017 17:33:05
  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
@@ -48452,7 +48431,7 @@ GO bn_illegal_axisname.jnl
 use illeg_axname.nc
 sh data
      currently SET data sets:
-    1> ./illeg_axname.nc  (default)
+    1> ./data/illeg_axname.nc  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...
  NEW.LONGITUDES
@@ -48790,7 +48769,7 @@ show grid/t a
  normal    X
  normal    Y
  normal    Z
- TIME7     T                    2 i   0.5                  2                   full
+ TIME12    T                    2 i   0.5                  2                   full
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -48814,7 +48793,7 @@ sh grid temp
  GRID_X_T  LONGITUDE            1 r   79E                  79E                 full
  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
+ TIME12    TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
  
 ! Bug 1181 Titles were truncated at 80 characters
 GO bn_reset
@@ -48841,7 +48820,7 @@ GO err580_use_des.jnl
 use vary_scale.des
 sh data
      currently SET data sets:
-    1> ./vary_scale.des  (default)
+    1> ./data/vary_scale.des  (default)
  name     title                             I         J         K         L
  TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
@@ -48858,7 +48837,7 @@ GO err580_use_des.jnl
 use vary_scale.des
 sh data
      currently SET data sets:
-    1> ./vary_scale.des  (default)
+    1> ./data/vary_scale.des  (default)
  name     title                             I         J         K         L
  TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
@@ -49425,7 +49404,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "7.21"
+FERRET_VERSION = "7.23"
  
 ! history attribute
 let a = 12
@@ -49443,7 +49422,7 @@ LAB1 = "X : 0.5 to 314.5"
  
 ! show commands without an argument, lists version number at the top
 sho command
- Commands in Program FERRET (beta/debug) version7.21:
+ Commands in Program FERRET (beta/debug) version7.23:
  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
@@ -49452,7 +49431,7 @@ sho command
  SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
  SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
-      /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+      /TYPE/SWAP/REGULART/DELIMITE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
  SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -49514,7 +49493,7 @@ sho command
        /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
        /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
        /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
-       /OUTTYPE/CURVILIN/LAYERZ
+       /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
  PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/ALONG/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE
        /VS/SYMBOL/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE
        /NOAXES/STEP/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG
@@ -49583,7 +49562,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "6-Sep-17:12:57"
+WIN_TITLE = "29-Nov-17:17:31"
  
 set win/title="set the title"
 sho sym win_title
@@ -49601,7 +49580,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title=" 6-Sep-17:12:57"
+ !-> set win/title="29-Nov-17:17:31"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49610,16 +49589,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 =  6-Sep-17
+ !-> DEFINE SYMBOL the_date = 29-Nov-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 12:57
+ !-> DEFINE SYMBOL the_time = 17:31
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="6-Sep-17:12:57"
+ !-> SET WIN/TITLE="29-Nov-17:17:31"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "6-Sep-17:12:57"
+WIN_TITLE = "29-Nov-17:17:31"
  
 GO bn_reset bn_last_error.jnl
 cancel mode verify
@@ -49945,7 +49924,7 @@ let zh2 = boxhi[k=2:`n`:2]
  
 list  zl2,(zl2+zh2)/2,zh2
  WARNING: Listed variables have ambiguous coordinates on axes: Z
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  Column  1: ZL2[Z=0:3174] is BOXLO[K=1:26:2]
  Column  2: EX#2 is (ZL2+ZH2)/2
  Column  3: ZH2[Z=0:4149] is BOXHI[K=2:27:2]
@@ -49967,7 +49946,7 @@ def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
  
 ! original axis
 list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              DEPTH (m): 0 to 4149
  Column  1: ZBOXLO is ZBOXLO (axis PSZT1)
  Column  2: Z is Z (axis PSZT1)
@@ -50046,7 +50025,7 @@ can var/all
  
 use ocean_atlas_temp
 sho att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50054,10 +50033,10 @@ sho att/all temp
  TEMP.units = Deg C 
  
 show attribute temp.units
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.units = Deg C 
 show attribute temp.missing_value
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  
 !  specifying data set
@@ -50066,7 +50045,7 @@ use gt4d011
 use levitus_climatology
  
 sh att/all temp[d=2]
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  TEMP.parent_grid = PS3DT2 
  TEMP.slab_min_index = 91, 35, 1, 0
  TEMP.slab_max_index = 108, 56, 10, 0
@@ -50076,17 +50055,17 @@ sh att/all temp[d=2]
  TEMP.history = From gt4d011 
  TEMP.units = deg. C 
 sh att temp.units[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.units = Deg C 
  
 !  global attributes
 use err491_attval
  
 show att ..remark
-     attributes for dataset: ./err491_attval.cdf
+     attributes for dataset: ./data/err491_attval.cdf
   .remark = Generated by oar3d                                                                                                                                               
 show att/all .
-     attributes for dataset: ./err491_attval.cdf
+     attributes for dataset: ./data/err491_attval.cdf
  ..simulation = K-Bay OAR3d model (200m) 
  ..start_date = 980105000000 
  ..history = a
@@ -50121,7 +50100,7 @@ show att/all .
  ..node_offset = 0
  
 sho att/all .[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  ..history = FERRET V4.90 (GUI) 04-Feb-98 
  
 !  Now SHOW DATA/ATT
@@ -50130,7 +50109,7 @@ can data/all
 use ocean_atlas_temp
 sho data/att
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
+    1> ./data/ocean_atlas_temp.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -50152,7 +50131,7 @@ sho data/att
                                  orig_file_axname
                                                  CHAR        13   F       ZAXLEVIT191_1
   
-(TIME3)                DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME4)                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          CHAR        1    T
                                  orig_file_axname
@@ -50170,7 +50149,7 @@ use levitus_climatology
  
 sh data/att gt4d011
      currently SET data sets:
-    2> ./gt4d011.cdf
+    2> ./data/gt4d011.cdf
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -50204,7 +50183,7 @@ sh data/att gt4d011
                                  orig_file_axname
                                                  CHAR        9    F       PSZTedges
   
-(TIME11)               DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
+(TIME12)               DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  orig_file_axname
                                                  CHAR        5    F       TIME1
@@ -50419,7 +50398,7 @@ use gt4d011
 ! string length for string attributes
  
 show att/all temp
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  TEMP.parent_grid = PS3DT2 
  TEMP.slab_min_index = 91, 35, 1, 0
  TEMP.slab_max_index = 108, 56, 10, 0
@@ -50528,7 +50507,7 @@ list cnames
              SUBSET   : 3 points (X)
  1   / 1:"COADSX"
  2   / 2:"COADSY"
- 3   / 3:"TIME4" 
+ 3   / 3:"TIME7" 
  
 ! ..varnames
 can data/all
@@ -50539,7 +50518,7 @@ let nv = ..nvars
 let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
@@ -50600,7 +50579,7 @@ list vnames
              SUBSET   : 3 points (X)
  1   / 1:"COADSX"
  2   / 2:"COADSY"
- 3   / 3:"TIME4" 
+ 3   / 3:"TIME7" 
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
              SUBSET   : 21 points (X)
@@ -50610,7 +50589,7 @@ list lnames
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
  6    /  6:"PSZTedges"      
- 7    /  7:"TIME11"         
+ 7    /  7:"TIME12"         
  8    /  8:"PSXT91_108"     
  9    /  9:"PSYT35_56"      
  10   / 10:"PSZT1_10"       
@@ -50770,7 +50749,7 @@ can var/all
 use test0.nc
 sh data/att
      currently SET data sets:
-    1> ./test0.nc  (default)
+    1> ./data/test0.nc  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -50860,7 +50839,7 @@ list/i=3 sst.dimnames
              VARIABLE : SST.DIMNAMES
              FILENAME : coads_climatology.cdf
              X        : 3
-        "TIME4"
+        "TIME7"
 let a= sst.dimnames
  
 list a
@@ -50869,7 +50848,7 @@ list a
              SUBSET   : 3 points (X)
  1   / 1:"COADSX"
  2   / 2:"COADSY"
- 3   / 3:"TIME4" 
+ 3   / 3:"TIME7" 
 list a[i=1]
              VARIABLE : SST.DIMNAMES
              FILENAME : coads_climatology.cdf
@@ -50905,7 +50884,7 @@ list/d=2 ..nvars
  
 sh data
      currently SET data sets:
-    1> ./gt4d011.cdf
+    1> ./data/gt4d011.cdf
  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
@@ -50916,7 +50895,7 @@ sh data
  TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
  PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
-    2> ./coads_climatology.cdf  (default)
+    2> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -50931,7 +50910,7 @@ list/d=2 ..dimnames
              SUBSET   : 3 points (X)
  1   / 1:"COADSX"
  2   / 2:"COADSY"
- 3   / 3:"TIME4" 
+ 3   / 3:"TIME7" 
 list/d=1 ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : gt4d011.cdf
@@ -50942,7 +50921,7 @@ list/d=1 ..dimnames
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
  6    /  6:"PSZTedges"      
- 7    /  7:"TIME11"         
+ 7    /  7:"TIME12"         
  8    /  8:"PSXT91_108"     
  9    /  9:"PSYT35_56"      
  10   / 10:"PSZT1_10"       
@@ -51025,7 +51004,7 @@ def att/type=float temp.floatval = 22
 def att temp.pp = {1.5, 1.9}
 def att temp.some_text = "some text about the TEMP variable"
 sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51042,7 +51021,7 @@ sh att/all temp
 def att temp.pp = {1.5, 1.9, 3.45, 7}
 def att temp.some_text = "some different text"
 sh att temp.pp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.pp = 1.5, 1.9, 3.45, 7
 let var = temp.some_text
 list/nohead var
@@ -51053,7 +51032,7 @@ list/nohead var
 use gt4d011
 def att/D=1 temp.morenew = 2
 sh att/all temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51074,7 +51053,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  
 use ocean_atlas_temp
 sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51107,7 +51086,7 @@ list (coadsx).modulo
              FILENAME : coads_climatology.cdf
         " "
 sho att/all (coadsx)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (COADSX).units = degrees_east 
  (COADSX).modulo =   
  (COADSX).point_spacing = even 
@@ -51149,7 +51128,7 @@ can data gt4d011
  
 set data coads_climatology
 sho att (coadsx).modulo
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (COADSX).modulo =   
 set att (coadsx).modulo=360
  
@@ -51157,7 +51136,7 @@ set att (coadsx).modulo=360
 ! axis still found and edited.
  
 set att (`sst,return=taxis`).time_origin="1-jan-1980"
- !-> set att (TIME4).time_origin="1-jan-1980"
+ !-> set att (TIME7).time_origin="1-jan-1980"
 list/x=130w/y=0 sst
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -51205,7 +51184,7 @@ list cnames
              SUBSET   : 3 points (X)
  1   / 1:"COADSX"
  2   / 2:"COADSY"
- 3   / 3:"TIME4" 
+ 3   / 3:"TIME7" 
 show axis (`cnames[i=1]`)
  !-> show axis (COADSX)
  name       axis              # pts   start                end
@@ -51241,7 +51220,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  
 use gt4d011
 sh att/all salt
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  SALT.parent_grid = PS3DT2 
  SALT.slab_min_index = 91, 35, 1, 0
  SALT.slab_max_index = 108, 55, 10, 0
@@ -51253,7 +51232,7 @@ sh att/all salt
  
 set att/like=temp salt
 sh att/all salt
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  SALT.missing_value = 0.01
  SALT._FillValue = 0.01
  SALT.parent_grid = PS3DT2 
@@ -51321,7 +51300,7 @@ def att/type=float temp.floatval = 22
 def att temp.pp = {1.5, 1.9}
 def att temp.some_text = "some text about the TEMP variable"
 sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51337,7 +51316,7 @@ sh att/all temp
 set att temp.pp = {1.5, 1.9, 3.45, 7}
 set att temp.some_text = "some different text"
 sh att temp.pp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.pp = 1.5, 1.9, 3.45, 7
 let var = temp.some_text
 list/nohead var
@@ -51365,7 +51344,7 @@ list pq
 use gt4d011
 def att/d=1 temp.morenew = 33
 sho att/all temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51407,7 +51386,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  
 use err491_attval.cdf
 sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
+sp ncdump -h data/err491_attval.cdf >> all_ncdump.out
 save/clobber/file=a.nc elev[i=3,j=2:4]
 sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
@@ -51478,7 +51457,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 use ocean_atlas_temp
 sh att/all  (`temp,return=xaxis`)
  !-> sh att/all  (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (XAX_LEV9421_380).units = degrees_east 
  (XAX_LEV9421_380).modulo =   
  (XAX_LEV9421_380).point_spacing = even 
@@ -51502,7 +51481,7 @@ sp ncdump -h a.nc >> all_ncdump.out
 set reg/x=300:360/y=30:45
 sh att/all  (`temp,return=xaxis`)
  !-> sh att/all  (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (XAX_LEV9421_380).units = degrees_east 
  (XAX_LEV9421_380).modulo =   
  (XAX_LEV9421_380).point_spacing = even 
@@ -51519,7 +51498,7 @@ sp ncdump -h a.nc >> all_ncdump.out
 ! cancel output of attributes of the variable itself
 can region
 sh att/all  temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51544,13 +51523,13 @@ ooooooooooooooooooooooooooooooooooooooooooo
 file/var="a1,a2,a3" EZ.DAT
 def att a1.three={1,2,3}
 sh att/all a1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  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)
+    1> ./data/EZ.DAT  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -51578,7 +51557,7 @@ columns/delim=" " EZ.DAT
 def att/type=string v1.strval = 2
 set att/output v1.strval
 sh att/all v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = V1 
  V1.missing_value = -1.E+34
  V1.strval = 2 
@@ -51828,7 +51807,7 @@ DEFINE ATT/OUTPUT  (`t2,return=yaxis`).new_att = "somthing"
  
 SHOW ATT/ALL (`t2,return=yaxis`)
  !-> SHOW ATT/ALL (COADSY)
-     attributes for dataset: ./coads_vwnd.cdf
+     attributes for dataset: ./data/coads_vwnd.cdf
  (COADSY).units = degrees_north 
  (COADSY).point_spacing = uneven 
  (COADSY).orig_file_axname = COADSY 
@@ -51880,7 +51859,7 @@ set att (`t2,return=xaxis`).units = "degrees"
  !-> set att (PSXT).units = "degrees"
 sh att/all (`t2,return=xaxis`)
  !-> sh att/all (PSXT)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (PSXT).units = degrees 
  (PSXT).point_spacing = even 
  (PSXT).orig_file_axname = PSXT 
@@ -51904,7 +51883,7 @@ set att (`temp,return=yaxis`).units="meters"
  !-> set att (PSYT1).units="meters"
 sho att/all (`temp,return=yaxis`)
  !-> sho att/all (PSYT1)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (PSYT1).units = meters 
  (PSYT1).point_spacing = uneven 
  (PSYT1).edges = PSYTedges 
@@ -51952,7 +51931,7 @@ define att/out (`temp,return=xaxis`).new_att = "something"
  !-> define att/out (XAXLEVITR1_160).new_att = "something"
 sh dat/att
      currently SET data sets:
-    1> ./levitus_climatology.cdf  (default)
+    1> ./data/levitus_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -52030,92 +52009,92 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ! Note original attributes
 use coads_climatology
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = hour since 0000-01-01 00:00:00 
- (TIME7).time_origin = 1-JAN-0000 00:00:00 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = hour since 0000-01-01 00:00:00 
+ (TIME12).time_origin = 1-JAN-0000 00:00:00 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 ! change units to days since time origin
 set att (`sst,return=taxis`).units="days"
- !-> set att (TIME7).units="days"
+ !-> set att (TIME12).units="days"
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = days since 1-JAN-0000 00:00:00 
- (TIME7).time_origin = 1-JAN-0000 00:00:00 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = days since 1-JAN-0000 00:00:00 
+ (TIME12).time_origin = 1-JAN-0000 00:00:00 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 define attribute (`sst,return=taxis`).units = "months"
- !-> define attribute (TIME7).units = "months"
+ !-> define attribute (TIME12).units = "months"
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-JAN-0000 00:00:00 
- (TIME7).time_origin = 1-JAN-0000 00:00:00 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 1-JAN-0000 00:00:00 
+ (TIME12).time_origin = 1-JAN-0000 00:00:00 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 ! change time origin and also units to include time origin
 set att (`sst,return=taxis`).time_origin = "1-mar-1955"
- !-> set att (TIME7).time_origin = "1-mar-1955"
+ !-> set att (TIME12).time_origin = "1-mar-1955"
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-mar-1955 
- (TIME7).time_origin = 1-mar-1955 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 1-mar-1955 
+ (TIME12).time_origin = 1-mar-1955 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 define attribute (`sst,return=taxis`).time_origin = "15-jan-2002"
- !-> define attribute (TIME7).time_origin = "15-jan-2002"
+ !-> define attribute (TIME12).time_origin = "15-jan-2002"
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002 
+ (TIME12).time_origin = 15-jan-2002 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 ! Likewise on DEFINE AXIS or SET AXIS, change units to
 ! include the correct since time_origin.
  
 use coads_climatology
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002 
+ (TIME12).time_origin = 15-jan-2002 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
 def axis/t=1:12:1/unit=months/t0="1-jan-0001" time
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002 
+ (TIME12).time_origin = 15-jan-2002 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 set axis/t0="15-jan-0000" time
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002 
+ (TIME12).time_origin = 15-jan-2002 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 set axis/units=days time
 show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002 
- (TIME7).time_origin = 15-jan-2002 
- (TIME7).modulo =   
- (TIME7).orig_file_axname = TIME 
+ !-> show att/all (TIME12)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002 
+ (TIME12).time_origin = 15-jan-2002 
+ (TIME12).modulo =   
+ (TIME12).orig_file_axname = TIME 
  
 ! Fix bug 1518: previously var.attnames for a user-defined variable resulted in an error
 use coads_climatology
@@ -52172,7 +52151,7 @@ sp ncdump -h a.nc  >> all_ncdump.out
 can data/all
 use ocean_atlas_temp
 sho att temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -52180,7 +52159,7 @@ sho att temp
  TEMP.units = Deg C 
 sho att ocean_atlas_temp
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
+    1> ./data/ocean_atlas_temp.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -52202,7 +52181,7 @@ sho att ocean_atlas_temp
                                  orig_file_axname
                                                  CHAR        13   F       ZAXLEVIT191_1
   
-(TIME3)                DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME4)                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          CHAR        1    T
                                  orig_file_axname
@@ -52216,7 +52195,7 @@ sho att ocean_atlas_temp
   
 sho att (`temp,return=xaxis`)
  !-> sho att (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (XAX_LEV9421_380).units = degrees_east 
  (XAX_LEV9421_380).modulo =   
  (XAX_LEV9421_380).point_spacing = even 
@@ -52225,7 +52204,7 @@ sho att (`temp,return=xaxis`)
 use levitus_climatology
 sho att 1
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf
+    1> ./data/ocean_atlas_temp.cdf
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -52247,7 +52226,7 @@ sho att 1
                                  orig_file_axname
                                                  CHAR        13   F       ZAXLEVIT191_1
   
-(TIME3)                DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME4)                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          CHAR        1    T
                                  orig_file_axname
@@ -52261,7 +52240,7 @@ sho att 1
   
 sho att 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf  (default)
+    2> ./data/levitus_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -52291,14 +52270,14 @@ sho att 2
   
  
 sho att temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
  TEMP.history = From ocean_atlas_monthly 
  TEMP.units = Deg C 
 sho att temp[d=2]
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  TEMP.missing_value = -1.E+10
  TEMP._FillValue = -1.E+10
  TEMP.long_name = TEMPERATURE 
@@ -52306,15 +52285,15 @@ sho att temp[d=2]
  TEMP.units = DEG C 
  
 sho att (`temp[d=1],return=taxis`[d=1])
- !-> sho att (TIME3[d=1])
-     attributes for dataset: ./ocean_atlas_temp.cdf
- (TIME3).units = hour since 0000-01-01 00:00:00 
- (TIME3).time_origin = 01-JAN-0000 00:00:00 
- (TIME3).modulo =   
- (TIME3).orig_file_axname = TIME 
+ !-> sho att (TIME4[d=1])
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
+ (TIME4).units = hour since 0000-01-01 00:00:00 
+ (TIME4).time_origin = 01-JAN-0000 00:00:00 
+ (TIME4).modulo =   
+ (TIME4).orig_file_axname = TIME 
  
 sho att .
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
  
 ! 1/17 *sh*
@@ -52360,7 +52339,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
           6.009285E+13
  
 list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 83W to 49W
              LATITUDE: 1S
              TIME: JAN
@@ -52390,7 +52369,7 @@ list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
 49W   / 146:  27.38   0.00   0.00   0.00   0.00
  
 list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 10N to 33N
              LONGITUDE: 93W
              TIME: JAN
@@ -52413,7 +52392,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
 33N   / 62:   ....       ....       ....       ....
  
 list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 10N to 33N
              LONGITUDE: 93W
              TIME: JAN
@@ -52434,7 +52413,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
 33N   / 62:   ....  1.000
  
 list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 23N to 51N
              LONGITUDE: 93W
              TIME: JAN
@@ -52460,7 +52439,7 @@ list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
 51N   / 71:   ....   ....   ....   2.47
  
 list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 93W
              LATITUDE: 23N to 51N
              TIME: JAN
@@ -52470,7 +52449,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
 I / *:     2.466  23.84
  
 list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 93W
              LATITUDE: 23N to 51N
              TIME: JAN
@@ -52480,7 +52459,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
 I / *:     9.000  6.000
  
 list/L=1/y=1:11/x=93w sst, sst[y=@iin]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 1N to 11N
              LONGITUDE: 93W
              TIME: JAN
@@ -52495,7 +52474,7 @@ list/L=1/y=1:11/x=93w sst, sst[y=@iin]
 11N   / 51:  26.99  2.956E+07
  
 list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 93W
              TIME: JAN
  Column  1: SST[Y=23N:25N] is SEA SURFACE TEMPERATURE (Deg C)
@@ -52505,7 +52484,7 @@ list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
 25N   / 58:  23.11  23.47
  
 list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-1]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 11N to 23N
              LONGITUDE: 93W
              TIME: JAN
@@ -52524,7 +52503,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-
 23N   / 57:  23.84  181.6  23.69  23.63  23.95
  
 list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl], sst[y=@weq:26]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 11N to 23N
              LONGITUDE: 93W
              TIME: JAN
@@ -53226,7 +53205,7 @@ GO err581_noleap_mod.jnl
  
 use gt4d011.cdf
 set axis/cal=noleap `u,return=taxis`
- !-> set axis/cal=noleap TIME11
+ !-> set axis/cal=noleap TIME12
 let a = u[t=1-sep-1982:1-jan-1983]
 def axis/t/edge/mod/cal=noleap/unit=days/t0=1-jan-0001 mon_irreg_nlp = {0,31,59,90,120,151,181,212,243,273,304,334,365}
  
@@ -53890,7 +53869,7 @@ stat rose[d=2]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 2576 (46*56*1*1*1*1)
  # flagged as bad  data: 0
@@ -53914,7 +53893,7 @@ stat rose[j=12,d=1]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 46 (46*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -53937,33 +53916,33 @@ GO err600_reset_redefine_axis.jnl
  
 use coads_climatology
 def sym timeax = `sst,return=taxis`
- !-> def sym timeax = TIME9
+ !-> def sym timeax = TIME16
  
 show att/all (($timeax))
- !-> show att/all (TIME9)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME9).units = hour since 0000-01-01 00:00:00 
- (TIME9).time_origin = 1-JAN-0000 00:00:00 
- (TIME9).modulo =   
- (TIME9).orig_file_axname = TIME 
+ !-> show att/all (TIME16)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME16).units = hour since 0000-01-01 00:00:00 
+ (TIME16).time_origin = 1-JAN-0000 00:00:00 
+ (TIME16).modulo =   
+ (TIME16).orig_file_axname = TIME 
 show axis ($timeax)
- !-> show axis TIME9
+ !-> show axis TIME16
  name       axis              # pts   start                end
- TIME9     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME16    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
 define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
- !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME9
+ !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME16
 show att/all (($timeax))
- !-> show att/all (TIME9)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME9).units = MONTHS since 1-JAN-0001 
- (TIME9).time_origin = 1-JAN-0001 
- (TIME9).orig_file_axname = TIME 
+ !-> show att/all (TIME16)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME16).units = MONTHS since 1-JAN-0001 
+ (TIME16).time_origin = 1-JAN-0001 
+ (TIME16).orig_file_axname = TIME 
 show axis ($timeax)
- !-> show axis TIME9
+ !-> show axis TIME16
  name       axis              # pts   start                end
- TIME9     TIME                 3 r   31-JAN-0001 10:29    02-APR-0001 07:27
+ TIME16    TIME                 3 r   31-JAN-0001 10:29    02-APR-0001 07:27
 T0 = 1-JAN-0001
    Axis span (to cell edges) = 3
  
@@ -53972,34 +53951,34 @@ T0 = 1-JAN-0001
 can data/all
 use gt4d011
 def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
+ !-> def sym timeax = TIME17
 show att/all (($timeax))
- !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
- (TIME11).units = hour since 1980-01-14 14:00:00 
- (TIME11).time_origin = 14-JAN-1980 14:00:00 
- (TIME11).orig_file_axname = TIME1 
+ !-> show att/all (TIME17)
+     attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = hour since 1980-01-14 14:00:00 
+ (TIME17).time_origin = 14-JAN-1980 14:00:00 
+ (TIME17).orig_file_axname = TIME1 
 show axis ($timeax)
- !-> show axis TIME11
+ !-> show axis TIME17
  name       axis              # pts   start                end
- TIME11    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ TIME17    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
 T0 = 14-JAN-1980 14:00:00
    Axis span (to cell edges) = 3650
  
 set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
- !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
+ !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME17
 show att/all (($timeax))
- !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
- (TIME11).units = days since 1-JAN-1900 
- (TIME11).time_origin = 1-JAN-1900 
- (TIME11).orig_file_axname = TIME1 
- (TIME11).calendar = NOLEAP 
- (TIME11).modulo =   
+ !-> show att/all (TIME17)
+     attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = days since 1-JAN-1900 
+ (TIME17).time_origin = 1-JAN-1900 
+ (TIME17).orig_file_axname = TIME1 
+ (TIME17).calendar = NOLEAP 
+ (TIME17).modulo =   
 show axis ($timeax)
- !-> show axis TIME11
+ !-> show axis TIME17
  name       axis              # pts   start                end
- TIME11    TIME                25mr   14-MAR-1962 00:00    19-OCT-1971 00:00
+ TIME17    TIME                25mr   14-MAR-1962 00:00    19-OCT-1971 00:00
 T0 = 1-JAN-1900
 CALENDAR = NOLEAP
    Axis span (to cell edges) = 3650 (modulo length = axis span)
@@ -54010,15 +53989,15 @@ CALENDAR = NOLEAP
 can data/all
 use gt4d011
 def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
+ !-> def sym timeax = TIME17
 def sym zax = `temp,return=zaxis`
  !-> def sym zax = PSZT1
 show att/all (($timeax))
- !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
- (TIME11).units = hour since 1980-01-14 14:00:00 
- (TIME11).time_origin = 14-JAN-1980 14:00:00 
- (TIME11).orig_file_axname = TIME1 
+ !-> show att/all (TIME17)
+     attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = hour since 1980-01-14 14:00:00 
+ (TIME17).time_origin = 14-JAN-1980 14:00:00 
+ (TIME17).orig_file_axname = TIME1 
 show axis ($zax)
  !-> show axis PSZT1
  name       axis              # pts   start                end
@@ -54026,24 +54005,24 @@ show axis ($zax)
    Axis span (to cell edges) = 4149
  
 cancel axis/modulo ($timeax)
- !-> cancel axis/modulo TIME11
+ !-> cancel axis/modulo TIME17
 show att/all (($timeax))
- !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
- (TIME11).units = hour since 1980-01-14 14:00:00 
- (TIME11).time_origin = 14-JAN-1980 14:00:00 
- (TIME11).orig_file_axname = TIME1 
+ !-> show att/all (TIME17)
+     attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = hour since 1980-01-14 14:00:00 
+ (TIME17).time_origin = 14-JAN-1980 14:00:00 
+ (TIME17).orig_file_axname = TIME1 
 show axis ($timeax)
- !-> show axis TIME11
+ !-> show axis TIME17
  name       axis              # pts   start                end
- TIME11    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ TIME17    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
 T0 = 14-JAN-1980 14:00:00
    Axis span (to cell edges) = 3650
 cancel axis/depth ($zax)
  !-> cancel axis/depth PSZT1
 show att/all (($zax))
  !-> show att/all (PSZT1)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (PSZT1).units = METERS 
  (PSZT1).positive = up 
  (PSZT1).point_spacing = uneven 
@@ -54075,7 +54054,7 @@ use coads_climatology
 ! Note TIME1 with attribute orig_file_axname
 sh dat/att
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -54092,7 +54071,7 @@ sh dat/att
                                  orig_file_axname
                                                  CHAR        6    F       COADSY
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME17)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        19   T       1-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  orig_file_axname
@@ -54120,7 +54099,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -54152,12 +54131,12 @@ sho dat/att
   
  PSZT11_10_bnds        DOUBLE
   
-(TIME11)               DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
+(TIME17)               DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME11
+                                                 CHAR        6    F       TIME17
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54169,7 +54148,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -54201,12 +54180,12 @@ sho dat/att
   
  PSZT11_10_bnds        DOUBLE
   
-(TIME111)              DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
+(TIME171)              DOUBLE    units           CHAR        30   T       hour since 1980-01-14 14:00:00
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME11
+                                                 CHAR        6    F       TIME17
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54359,7 +54338,7 @@ stat rose[d=2]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 2576 (46*56*1*1*1*1)
  # flagged as bad  data: 0
@@ -54383,7 +54362,7 @@ stat rose[j=12,d=1]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 46 (46*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -54407,7 +54386,7 @@ GO bn_set_strides.jnl
 !            unrelated axes already defined, which get in the way of
 !            seeing the desired output.
  
-set mode ignore_error
+!set mode ignore_error
  
 !..............1. ignore STRIDE = 1
 use coads_climatology
@@ -54422,9 +54401,9 @@ show axis `sst,return=yaxis`
  COADSY    LATITUDE            90 r   89S                  89N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
- !-> show axis TIME10
+ !-> show axis TIME20
  name       axis              # pts   start                end
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
 set axis/stride=1/offset=1 `sst, return=xaxis`
@@ -54446,6 +54425,7 @@ show axis `sst,return=xaxis`
  (AX052)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 !can't stride it again
+set mode ignore_error
 set axis/stride=2/offset=1 `sst, return=xaxis`
  !-> set axis/stride=2/offset=1 (AX052)
 show axis `sst,return=xaxis`
@@ -54453,6 +54433,7 @@ show axis `sst,return=xaxis`
  name       axis              # pts   start                end
  (AX052)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
+set mode/last ignore
 cancel data/all
  
 !..............3. only set STRIDE
@@ -54532,15 +54513,20 @@ show axis `sst,return=xaxis`
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+set mode ignore
 cancel axis/stride `sst,return=xaxis`
  !-> cancel axis/stride COADSX
+set mode/last ignore
 cancel data/all
  
  
 !.............5. OFFSET .LE. STRIDE
 use coads_climatology
+set mode ignore
 set axis/stride=2/offset=4 `sst, return=xaxis`
  !-> set axis/stride=2/offset=4 COADSX
+set mode/last ignore
 cancel data/all
  
 !.............6. SHOW GRID/DYNAMIC
@@ -54558,8 +54544,11 @@ cancel data/all
  
 !.............7. cancel stride on a non-strided axis
 use coads_climatology
+set mode ignore
 cancel axis/stride `sst,return=xaxis`
  !-> cancel axis/stride COADSX
+set mode/last ignore
+ 
 cancel data/all
  
 !.............8. striding on a modulo axis
@@ -54685,7 +54674,7 @@ can data/all
 use/order=yzt coads_climatology
 show data/all
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3
  
@@ -54739,6 +54728,7 @@ list/x=180/l=5 sst[j=1:30]
  85S   /  3:   ....
  87S   /  2:   ....
  89S   /  1:   ....
+ 
 set axis/stride=5/offset=3 `sst,return=yaxis`
  !-> set axis/stride=5/offset=3 COADSY
 list/x=180/l=5  sst
@@ -54792,7 +54782,7 @@ set axis/stride=2 `sst, return=xaxis`
 set axis/stride=2 `sst, return=yaxis`
  !-> set axis/stride=2 COADSY
 set axis/stride=2 `sst, return=taxis`
- !-> set axis/stride=2 TIME10
+ !-> set axis/stride=2 TIME20
  
 show axis `sst,return=xaxis`
  !-> show axis (AX056)
@@ -54831,9 +54821,9 @@ show axis `sst,return=yaxis`
  COADSY    LATITUDE            90 r   89S                  89N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
- !-> show axis TIME10
+ !-> show axis TIME20
  name       axis              # pts   start                end
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
  
@@ -54854,7 +54844,7 @@ let f_filtered = lsl_lowpass(my_temp, 40,10)
 ! List the output so its not just a graphical test;
 ! Compute based on the whole T region, but just list a portion.
 LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
-             DATA SET: ./gtsa056_2.cdf
+             DATA SET: ./data/gtsa056_2.cdf
              TIME: FEB-1982 to MAR-1982
              LONGITUDE: 179.5E
              LATITUDE: 0.167S
@@ -54890,7 +54880,7 @@ sh grid temp
  XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)        full
  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
+ TIME4     TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
 sh axis XAX_LEV9421_380
  name       axis              # pts   start                end
  XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
@@ -55057,7 +55047,7 @@ SHOW GRID/Z atmos
  normal    X
  normal    Y
  ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
- TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
+ TIME21    TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
  
        K     Z                   ZBOX      ZBOXLO
        1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
@@ -55261,7 +55251,7 @@ list nomiss[gt=month_reg at MODNGD]
  
 let var = if temp gt 29.5 then temp
 list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD]+var[gt=month_reg at MODNBD], nomiss[gt=month_reg at MODNGD]
-             DATA SET: ./gtsa056_2.cdf
+             DATA SET: ./data/gtsa056_2.cdf
              TIME: JAN to DEC
              LONGITUDE: 139.5E
              LATITUDE: 0.833N
@@ -55488,7 +55478,7 @@ USE coads_climatology
 SET VAR/NAME=my_sst sst
 SHOW DATA
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -55875,6 +55865,7 @@ ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
 DATES(Offsets)
+EARTH_DISTANCE(longitude,latitude)
 EFSTRINGS(--)
 FACTORIAL(A)
 FFT_AMP(A)
@@ -55990,7 +55981,7 @@ show var/xml
 </attribute>
 <grid name="GSI1">
 <axes>
-<zaxis>TIME10</zaxis>
+<zaxis>TIME19</zaxis>
 </axes>
 </grid>
 </var>
@@ -56527,7 +56518,7 @@ GO err61_new_attr_on_axis
 use ocean_atlas_temp
 sh dat
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
+    1> ./data/ocean_atlas_temp.cdf  (default)
  name     title                             I         J         K         L
  TEMP     Temperature                      1:360     1:180     1:1       1:2
  
@@ -56568,7 +56559,7 @@ use gt4d011
 use levitus_climatology
  
 sh att temp[d=1].units
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.units = Deg C 
  
  
@@ -56584,7 +56575,7 @@ list vnames
  1   / 1:"XAX_LEV9421_380"
  2   / 2:"YAX_LEV94"      
  3   / 3:"ZAXLEVIT191_1"  
- 4   / 4:"TIME3"          
+ 4   / 4:"TIME4"          
 list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
              SUBSET   : 21 points (X)
@@ -56594,7 +56585,7 @@ list lnames
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
  6    /  6:"PSZTedges"      
- 7    /  7:"TIME11"         
+ 7    /  7:"TIME110"        
  8    /  8:"PSXT91_108"     
  9    /  9:"PSYT35_56"      
  10   / 10:"PSZT1_10"       
@@ -57029,15 +57020,7 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLATITUDE : 9N
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASTIME : JAN
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 3  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: coads_climatology
- 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 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 1 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  
 ! For plots with multi lines in one plot command, mark each if no data
@@ -57086,7 +57069,7 @@ use gtsa056_2.cdf
 let var = u[x=180,y=0,k=1,t=1-jan-1982:1-jan-1983]
 plot var, var[t=@med],  var[t=@med:3], var[t=@med:7]
 list/t=1-dec-1982:1-jan-1983 var, var[t=@med],  var[t=@med:3], var[t=@med:7]
-             DATA SET: ./gtsa056_2.cdf
+             DATA SET: ./data/gtsa056_2.cdf
              TIME: NOV-1982 to JAN-1983
              LONGITUDE: 180E
              LATITUDE: 0
@@ -57112,7 +57095,7 @@ use coads_climatology
 let var= sst[y=0,L=10]
 plot var,var[x=@med:3], var[x=@med:7]
 list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 80W to 50W
              LATITUDE: 1S
              TIME: FEB-0002
@@ -57139,7 +57122,7 @@ list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
 let var= sst[x=180,L=10]
 plot var,var[y=@med:3], var[y=@med:7]
 list/y=-20:0 var,var[y=@med:3], var[y=@med:7]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 20S to 0
              LONGITUDE: 179E
              TIME: FEB-0002
@@ -57308,7 +57291,7 @@ sh grid sst
  LON       LONGITUDE         7200mr   179.97W(-179.97)     179.97E             full
  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
+ TIME21    TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
  
 ! This first was wrong, returned data at x=-180
 list/x=180 sst
@@ -57521,11 +57504,11 @@ USE bug1421_b
  
 SHOW DATA
      currently SET data sets:
-    1> ./bug1421_a.nc
+    1> ./data/bug1421_a.nc
  name     title                             I         J         K         L
  A        zonal wind stress                1:1       1:1       ...       1:20
  
-    2> ./bug1421_b.nc  (default)
+    2> ./data/bug1421_b.nc  (default)
  name     title                             I         J         K         L
  B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12
  
@@ -58110,7 +58093,7 @@ GO bn_proleptic_gregorian_calendar
 set data proleptic_gregorian.nc
 show data
      currently SET data sets:
-    1> ./proleptic_gregorian.nc  (default)
+    1> ./data/proleptic_gregorian.nc  (default)
  name     title                             I         J         K         L
  MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
  
@@ -58778,7 +58761,7 @@ GO bn_last_go_file.jnl
 ! test the automatically-defined symbol LAST_GO_FILE
  
 show sym last_go_file
-LAST_GO_FILE = "./bn_last_go_file.jnl"
+LAST_GO_FILE = "./v6jnls/bn_last_go_file.jnl"
  
  
 GO bn_reset bn_cancel_upcase_uservar.jnl
@@ -59339,7 +59322,7 @@ list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijklave
 set data/format=cdf test_fil0
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -59445,7 +59428,7 @@ show grid ijkl
  PSXU      LONGITUDE          160mr   131E                 70W                 full
  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
+ TIME22    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
 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
@@ -59531,7 +59514,7 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
 set data/format=cdf test_fil
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -59614,7 +59597,7 @@ set data reverse_axes
  
 show data/var
      currently SET data sets:
-    1> ./reverse_axes.cdf  (default)
+    1> ./data/reverse_axes.cdf  (default)
  
  name     title                             I         J         K         L
  FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
@@ -59631,7 +59614,7 @@ show data/var
  
 list/x=180 fcn_norm,fcn_rev
  WARNING: Listed variables have ambiguous coordinates on axes: Y
-             DATA SET: ./reverse_axes.cdf
+             DATA SET: ./data/reverse_axes.cdf
              LONGITUDE: 180E
  Column  1: FCN_NORM is COS(X/10)*SIN(Y/2)
  Column  2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -59692,7 +59675,7 @@ sh command list
        /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
        /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
        /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
-       /OUTTYPE/CURVILIN/LAYERZ
+       /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
 define axis/x=1:100:1/units=deg x100
 define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
 let a = x[gx=x100] + t[gt=t31]
@@ -60145,7 +60128,7 @@ USE grads_bug_file.nc
 ! A4 has z axis with long name layer
 SHOW DATA
      currently SET data sets:
-    1> ./grads_bug_file.nc  (default)
+    1> ./data/grads_bug_file.nc  (default)
  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       ...
@@ -60195,10 +60178,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
 Starting test: bn_clock_syms
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "83.3653"
-CLOCK_SECS = "114.647"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:59:32"
+DELTA_CPU = "87.9596"
+CLOCK_SECS = "116.003"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:33:45"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60207,8 +60190,8 @@ CURRENT_TIME = "12:59:32"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.059991"
-CLOCK_SECS = "114.837"
+DELTA_CPU = "0.082987"
+CLOCK_SECS = "116.176"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60222,60 +60205,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.435934
+ !-> DEFINE VARIABLE ten_plots = 0.46593
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "116.453"
+DELTA_CPU = "9.99E-04"
+CLOCK_SECS = "117.871"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "116.455"
+CLOCK_SECS = "117.873"
 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.050992
- !-> DEFINE VARIABLE sumcpu =0.050992
+ !-> DEFINE VARIABLE dt = 0.055992
+ !-> DEFINE VARIABLE sumcpu =0.055992
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.052992
- !-> DEFINE VARIABLE sumcpu =0.103984
+ !-> DEFINE VARIABLE dt = 0.05799
+ !-> DEFINE VARIABLE sumcpu =0.113982
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.052992
- !-> DEFINE VARIABLE sumcpu =0.156976
+ !-> DEFINE VARIABLE dt = 0.057992
+ !-> DEFINE VARIABLE sumcpu =0.171974
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.053992
- !-> DEFINE VARIABLE sumcpu =0.210968
+ !-> DEFINE VARIABLE dt = 0.082987
+ !-> DEFINE VARIABLE sumcpu =0.254961
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.051991
- !-> DEFINE VARIABLE sumcpu =0.262959
+ !-> DEFINE VARIABLE dt = 0.057991
+ !-> DEFINE VARIABLE sumcpu =0.312952
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.051993
- !-> DEFINE VARIABLE sumcpu =0.314952
+ !-> DEFINE VARIABLE dt = 0.056992
+ !-> DEFINE VARIABLE sumcpu =0.369944
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.053991
- !-> DEFINE VARIABLE sumcpu =0.368943
+ !-> DEFINE VARIABLE dt = 0.05999
+ !-> DEFINE VARIABLE sumcpu =0.429934
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.054992
- !-> DEFINE VARIABLE sumcpu =0.423935
+ !-> DEFINE VARIABLE dt = 0.059991
+ !-> DEFINE VARIABLE sumcpu =0.489925
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.052992
- !-> DEFINE VARIABLE sumcpu =0.476927
+ !-> DEFINE VARIABLE dt = 0.057991
+ !-> DEFINE VARIABLE sumcpu =0.547916
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.052991
- !-> DEFINE VARIABLE sumcpu =0.529918
+ !-> DEFINE VARIABLE dt = 0.056992
+ !-> DEFINE VARIABLE sumcpu =0.604908
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.529918
-0.529918
+ !-> MESSAGE/CONTINUE 0.604908
+0.604908
 sh sym CLOCK_SECS
-CLOCK_SECS = "119.245"
+CLOCK_SECS = "120.778"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:59:36"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:33:50"
  
  
 ! ******** V6.3 Additions below ***********
@@ -60471,7 +60454,7 @@ use lev_rev_up.nc
  
 use lev_rev_up.nc
 list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
-             DATA SET: ./lev_rev_up.nc
+             DATA SET: ./data/lev_rev_up.nc
              Z (METERS): -5000 to 0
  Column  1: Z is Z (axis ZAXLEVITR)
  Column  2: ZBOXLO is ZBOXLO (axis ZAXLEVITR)
@@ -60935,7 +60918,7 @@ LIST var
  16-JAN-1969 / 20:  0.6617913
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX143)
+ !-> CAN AXIS/STRIDE (AX144)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -61312,7 +61295,7 @@ DEFINE GRID/X=XEZ1/Y=EZ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:3       1:20480   ...       ...
@@ -61338,7 +61321,7 @@ LIST X1
  5   / 5:  0.4780000  0.5150000  0.4690000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:3       1:5       ...       ...
  X2       X2                               1:3       1:5       ...       ...
@@ -61518,14 +61501,14 @@ 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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
+ allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME24
  
 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
@@ -61533,7 +61516,7 @@ 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
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME24
  getgrid EX#1     C:  5 dset:   1 I:      1      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
@@ -61614,23 +61597,23 @@ 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
  getgrid EX#1     C:  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
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME24
  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
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME24
  getgrid EX#1     C:  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
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME24
  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
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME24
  getgrid EX#1     C:  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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
@@ -61646,7 +61629,7 @@ plot/over temp[g=u]
 setting up plot
 PPL plot 761  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  getgrid 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
@@ -61678,7 +61661,7 @@ PPL plot 763  complete
 plot/over temp[g=u at ave]
  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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
@@ -61694,7 +61677,7 @@ plot/over temp[g=u at ave]
 setting up plot
 PPL plot 764  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  getgrid 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
@@ -61728,7 +61711,7 @@ PPL plot 766  complete
 plot/over temp[g=u at asn]
  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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
@@ -61748,7 +61731,7 @@ plot/over temp[g=u at asn]
 setting up plot
 PPL plot 767  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  getgrid 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
@@ -61768,17 +61751,17 @@ PPL plot 768  complete
 plot/over temp[g=u,gt=u at ave]
  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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
 setting up plot
 PPL plot 769  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME24
  getgrid 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
@@ -61960,7 +61943,7 @@ show grid gg123456789012345678901
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
 cancel variable f
@@ -61970,7 +61953,7 @@ show grid gg123456789012345678902
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
  (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -62027,7 +62010,7 @@ show grid
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
  (AX121)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
 show grid/dynamic
 Dynamic grids:
     GRID (G104)                          use count:   1
@@ -62035,7 +62018,7 @@ Dynamic grids:
  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
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
 ! deliberate errors
 set mode ignore
@@ -62148,7 +62131,7 @@ GO err64_packed_data
 ! sp ncpdq fine_x_axis.nc err64_packed_data.nc
 use err64_packed_data.nc
 sh att/all sst
-     attributes for dataset: ./err64_packed_data.nc
+     attributes for dataset: ./data/err64_packed_data.nc
  SST.missing_value = 1.E+20
  SST._FillValue = 1.E+20
  SST.long_name = sea surface temperature [degc] 
@@ -62750,18 +62733,18 @@ sp cat the_xml_file.xml
    <value><![CDATA[MONTH_IRREG]]></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>
@@ -62773,24 +62756,24 @@ 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>
-<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>
@@ -62802,10 +62785,10 @@ 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>
 </axes>
@@ -62843,7 +62826,7 @@ stat temp[x=@ave,t=@ave]
              TIME: AUG-1982 to JAN-1983 (XT ave)
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 198 (1*22*9*1*1*1)
  # flagged as bad  data: 0
@@ -62861,7 +62844,7 @@ stat temp[x=@ave,z=@ave]
              TIME: AUG-1982 to JAN-1983
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 550 (1*22*1*25*1*1)
  # flagged as bad  data: 0
@@ -62909,7 +62892,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
              TIME: AUG-1982 to JAN-1983 (ZT ave)
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 234 (18*13*1*1*1*1)
  # flagged as bad  data: 0
@@ -63685,7 +63668,7 @@ cancel grid mygrid
 use bn_set_axis_regular
 show data
      currently SET data sets:
-    1> ./bn_set_axis_regular.nc  (default)
+    1> ./data/bn_set_axis_regular.nc  (default)
  name     title                             I         J         K         L
  MYDATA   2 * X + Y                        1:10      1:10      ...       ...
  
@@ -64188,9 +64171,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7.21 (beta/debug)"                                               
- 3    /  3:" ! Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17"                       
- 4    /  4:" !  6-Sep-17 12:57     "                                                    
+ 2    /  2:" ! FERRET v7.23 (beta/debug)"                                               
+ 3    /  3:" ! Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17"                      
+ 4    /  4:" ! 29-Nov-17 17:31     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64302,7 +64285,7 @@ plot/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
  
 ! Numeric results
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: AUG-1982 to JAN-1983
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -64339,7 +64322,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
 10-JAN-1983 12 / 25:  32.59  32.81  32.81  32.59
  
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: AUG-1982 to JAN-1983
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -64375,7 +64358,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
 04-JAN-1983 10 / 24:  32.81  32.81  32.94  32.59
 10-JAN-1983 12 / 25:  32.59  32.81  32.81  32.59
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: AUG-1982 to JAN-1983
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -64411,7 +64394,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
 04-JAN-1983 10 / 24:  32.81  32.94  32.97  32.59
 10-JAN-1983 12 / 25:  32.59  32.81  32.94  32.59
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: AUG-1982 to JAN-1983
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -64448,7 +64431,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
 10-JAN-1983 12 / 25:  32.59  32.81  32.97  32.59
  
 list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              LONGITUDE: 139.5W to 122.5W
              LATITUDE: 2.5N
              DEPTH (m): 5
@@ -64477,7 +64460,7 @@ list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn
 123.5W / 107:  27.15  27.15  27.17  27.13
 122.5W / 108:  27.17  27.17  27.17  27.15
 list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              LATITUDE: 3.667S to 3.667N
              LONGITUDE: 123.5W
              DEPTH (m): 5
@@ -64511,7 +64494,7 @@ list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at s
 3.5N  / 56:  28.06  28.06  28.06  27.70
  
 list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              DEPTH (m): 0 to 100
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -64602,7 +64585,7 @@ STAT/L=1 huge
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -64622,7 +64605,7 @@ STAT/L=1 huge
              TIME: JAN
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -64648,7 +64631,7 @@ GO bn_labnum_calendar
  
 use gt4d011
 set axis/calendar=noleap `temp,return=taxis`
- !-> set axis/calendar=noleap TIME12
+ !-> set axis/calendar=noleap TIME110
 plot/x=132w/y=2n/k=1 temp
 sh sym LABNUM_CALEND
 LABNUM_CALEND = "4"
@@ -64699,9 +64682,9 @@ REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m
  !-> REPEAT/RANGE=1:4/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m)]`)
 !-> REPEAT: M:1
  !-> DEFINE SYMBOL m = 1
- !-> SH AXIS/XML TIME13
+ !-> SH AXIS/XML TIME23
 <axes>
-<axis name="TIME13">
+<axis name="TIME23">
 <attribute name="direction" type="char">
    <value><![CDATA[L]]></value>
 </attribute>
@@ -64872,7 +64855,7 @@ GO err664_xml_one_point_axis
 USE a_cartesian_bug1179.nc
 SH DAT
      currently SET data sets:
-    1> ./a_cartesian_bug1179.nc  (default)
+    1> ./data/a_cartesian_bug1179.nc  (default)
  name     title                             I         J         K         L
  TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
@@ -64882,7 +64865,7 @@ 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]">
+<var name="A[D=./data/a_cartesian_bug1179.nc]">
 <attribute name="definition" type="char">
    <value><![CDATA[TEMP]]></value>
 </attribute>
@@ -64897,7 +64880,7 @@ SH VAR/XML
 <xaxis>GRID_X_T</xaxis>
 <yaxis>GRID_Y_T</yaxis>
 <zaxis>ZT</zaxis>
-<taxis>TIME13</taxis>
+<taxis>TIME23</taxis>
 </axes>
 </grid>
 </var>
@@ -64910,7 +64893,7 @@ 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]">
+<var name="TEMP_AVE_T[D=./data/a_cartesian_bug1179.nc]">
 <attribute name="definition" type="char">
    <value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
 </attribute>
@@ -64924,7 +64907,7 @@ SH VAR/XML
 <axes>
 <xaxis>GRID_X_T</xaxis>
 <yaxis>GRID_Y_T</yaxis>
-<taxis>TIME13</taxis>
+<taxis>TIME23</taxis>
 </axes>
 </grid>
 </var>
@@ -64943,7 +64926,7 @@ set mode calendar:minutes ! this was set to months, back in bn_pattern.jnl
 use epic_formatted_file.nc
 list/prec=7 t[gt=t_28]
              VARIABLE : T
-                        axis TIME13
+                        axis TIME23
              FILENAME : epic_formatted_file.nc
              TIME     : 04-MAY-2007 05:02
           38825.21
@@ -64963,7 +64946,7 @@ list ..dimnames
              VARIABLE : ..DIMNAMES
              FILENAME : epic_formatted_file.nc
              SUBSET   : 4 points (X)
- 1   / 1:"TIME13"
+ 1   / 1:"TIME23"
  2   / 2:"dep"   
  3   / 3:"lat"   
  4   / 4:"lon"   
@@ -65337,7 +65320,7 @@ GO err667_att_too_long
 use toolong.nc
 sh dat/att
      currently SET data sets:
-    1> ./toolong.nc  (default)
+    1> ./data/toolong.nc  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -65363,7 +65346,7 @@ sh dat/att
                                  orig_file_axname
                                                  CHAR        8    F       LAT54_54
   
-(TIME13)               DOUBLE    long_name       CHAR        23   T       time interval endpoints
+(TIME23)               DOUBLE    long_name       CHAR        23   T       time interval endpoints
                                  units           CHAR        30   T       days since 0001-01-01 00:00:00
                                  calendar        CHAR        6    T       noleap
                                  axis            CHAR        1    T       T
@@ -65480,9 +65463,9 @@ GO err667_show_var_twice
  
 use coads_climatology
 sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
 sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
  
 !should return nothing
 sh var airt
@@ -65806,7 +65789,7 @@ GO err67_reverse_bounds
  
 use reverse_z_bnds.nc
 list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
-             DATA SET: ./reverse_z_bnds.nc
+             DATA SET: ./data/reverse_z_bnds.nc
              Z: 0 to 1
  Column  1: LEV_VAR is a variable on the depth axis (none)
  Column  2: ZBOXLO is ZBOXLO (axis LEV)
@@ -66311,11 +66294,11 @@ GO err672_axis_order
  
  
 use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
+sp cp data/err67_axis_order.nc err67_axis_order_copy.nc
 use err67_axis_order_copy.nc
 sh dat
      currently SET data sets:
-    1> ./err67_axis_order.nc
+    1> ./data/err67_axis_order.nc
  name     title                             I         J         K         L
  UCOV     UCOV                             1:6       1:9       1:3       1:1
  CONTROLE CONTROLE                         1:6       ...       ...       ...
@@ -66494,7 +66477,7 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G103)
  name       axis              # pts   start                end                 subset
- (AX084)   X                    3 r   0                    2                   3 pts
+ (AX140)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
@@ -66527,14 +66510,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX084
+                        axis AX140
              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 AX084
+                        axis AX140
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66549,7 +66532,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX084
+                        axis AX140
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66558,7 +66541,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 AX084
+                        axis AX140
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66574,7 +66557,7 @@ 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 AX084
+                        axis AX140
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66658,7 +66641,7 @@ STAT IF intvar THEN 1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 8780
@@ -66678,7 +66661,7 @@ STAT IFV intvar THEN 1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -66741,40 +66724,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.723
-randu2_randn2       0.844
-randu2_randn2       0.361
-randu2_randn2       0.801
-randu2_randn2       0.714
+randu2_randn2       0.733
+randu2_randn2       0.756
+randu2_randn2       0.889
+randu2_randn2       0.187
+randu2_randn2       0.359
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.629
-randu2_randn2       0.222
-randu2_randn2       0.004
-randu2_randn2       0.305
-randu2_randn2       0.983
+randu2_randn2       0.549
+randu2_randn2       0.332
+randu2_randn2       0.852
+randu2_randn2       0.809
+randu2_randn2       0.454
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.810
-randu2_randn2       0.972
-randu2_randn2       0.723
-randu2_randn2       0.013
-randu2_randn2       0.234
-randu2_randn2       0.089
+randu2_randn2       0.392
+randu2_randn2       0.111
+randu2_randn2       0.822
+randu2_randn2       0.175
+randu2_randn2       0.664
+randu2_randn2       0.303
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.749
-randu2_randn2       0.206
-randu2_randn2       0.925
-randu2_randn2       0.963
-randu2_randn2       0.098
-randu2_randn2       0.286
+randu2_randn2       0.822
+randu2_randn2       0.124
+randu2_randn2       0.734
+randu2_randn2       0.740
+randu2_randn2       0.031
+randu2_randn2       0.177
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66799,40 +66782,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       1.582
-randu2_randn2       0.471
-randu2_randn2       0.045
-randu2_randn2       0.654
-randu2_randn2       0.983
+randu2_randn2      -1.081
+randu2_randn2       0.219
+randu2_randn2      -0.515
+randu2_randn2       0.111
+randu2_randn2       0.281
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.699
-randu2_randn2       1.179
-randu2_randn2      -0.448
-randu2_randn2       1.259
-randu2_randn2       0.687
+randu2_randn2      -0.233
+randu2_randn2      -0.053
+randu2_randn2      -0.351
+randu2_randn2      -0.735
+randu2_randn2      -0.077
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.156
-randu2_randn2       1.197
-randu2_randn2       0.780
-randu2_randn2      -0.299
-randu2_randn2       0.855
-randu2_randn2      -0.234
+randu2_randn2       0.908
+randu2_randn2      -0.681
+randu2_randn2      -1.306
+randu2_randn2      -1.034
+randu2_randn2      -0.679
+randu2_randn2       1.284
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.989
-randu2_randn2      -1.199
-randu2_randn2      -0.140
-randu2_randn2      -0.038
-randu2_randn2       0.549
-randu2_randn2      -1.772
+randu2_randn2       1.348
+randu2_randn2      -0.931
+randu2_randn2       0.590
+randu2_randn2       1.527
+randu2_randn2      -0.122
+randu2_randn2       1.097
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66857,14 +66840,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.742       1.742       0.784
-randu2_randn2       1.210       1.210       0.784
-randu2_randn2       0.784       0.784       0.039
-randu2_randn2       0.039       0.039       0.784
-randu2_randn2      -0.057      -0.057       0.748
-randu2_randn2      -0.918      -0.174       0.748
-randu2_randn2      -0.174      -0.174       0.748
-randu2_randn2       0.895       0.748       0.748
+randu2_randn2       1.956       1.956       0.236
+randu2_randn2       1.481       1.481       0.236
+randu2_randn2       0.236       0.236       0.158
+randu2_randn2       0.158       0.158       0.236
+randu2_randn2      -0.021      -0.021       0.236
+randu2_randn2      -0.521      -0.222       0.236
+randu2_randn2      -0.222      -0.222       0.236
+randu2_randn2       0.560       0.560       0.560
  
 GO bn_reset bn_axis_cf
 cancel mode verify
@@ -66906,7 +66889,7 @@ sp ncdump -h a.nc >> all_ncdump.out
 use degrees
 sh att/all (`var,return=xaxis`)
  !-> sh att/all (XAXIS)
-     attributes for dataset: ./degrees.nc
+     attributes for dataset: ./data/degrees.nc
  (XAXIS).units = degrees_east 
  (XAXIS).point_spacing = even 
  (XAXIS).axis = X 
@@ -66925,7 +66908,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 use bn_strides
 sh att/all (TTIME)
-     attributes for dataset: ./bn_strides.cdf
+     attributes for dataset: ./data/bn_strides.cdf
  (TTIME).units = DAYS since 1901-01-15 00:00:00 
  (TTIME).time_origin = 15-JAN-1901 
  (TTIME).point_spacing = even 
@@ -67052,7 +67035,7 @@ sp cat xml_out.xml
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <data>
 <datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./data/coads_climatology.cdf" default="true">
 <title> </title>
 <var name="SST">
 <attribute name="units" type="char">
@@ -67077,7 +67060,7 @@ sp cat xml_out.xml
 <axes>
 <xaxis>COADSX</xaxis>
 <yaxis>COADSY</yaxis>
-<taxis>TIME10</taxis>
+<taxis>TIME20</taxis>
 </axes>
 </grid>
 </var>
@@ -67142,7 +67125,7 @@ sp cat xml_out.xml
    <value><![CDATA[COADSY]]></value>
 </attribute>
 </axis>
-<axis name="TIME10">
+<axis name="TIME20">
 <attribute name="direction" type="char">
    <value><![CDATA[L]]></value>
 </attribute>
@@ -67241,7 +67224,7 @@ GO bn_eof_simple
 ! 7/2012
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
- 
+! 11/2017 - still try to test old eof functions, if they are re-implemented
  
 ! Define two locations.
 def axis /X=1:2:1 xaxis
@@ -67288,20 +67271,47 @@ list eofsvd_stat(spacetime)
  
 show func eofsvd_space
 EOFSVD_SPACE(A)
-    Return SVD EOF spacial fields from XYT field
+    Return SVD EOF spatial fields from XYT field
     A: Variable in x,y,t; may be fcn of z,e,f
 ! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
 ! but might be mixed by rotation.
 ! This is if the EOF functions are in units of the original data,
 ! thus the eigenvectors times the square-root of the eigenvalue.
 ! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
-             VARIABLE : EOFSVD_SPACE(SPACETIME)
-             SUBSET   : 2 by 2 points (X-T)
-             1       2     
-              1       2
- 1   / 1:  0.0000 -0.7071
- 2   / 2: -0.7071 -0.0000
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          0.5000
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+          0.0000
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+          0.0000
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          0.5000
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -67309,251 +67319,40 @@ EOFSVD_TFUNC(A)
     A: Variable in x,y,t; may be fcn of z,e,f
 ! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
 ! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
-             VARIABLE : EOFSVD_TFUNC(SPACETIME)
-             SUBSET   : 2 by 240 points (X-T)
-                 1      2    
-                 1      2
- 0     /   1: -0.000 -1.414
- 0.25  /   2: -0.185 -1.402
- 0.5   /   3: -0.366 -1.366
- 0.75  /   4: -0.541 -1.307
- 1     /   5: -0.707 -1.225
- 1.25  /   6: -0.861 -1.122
- 1.5   /   7: -1.000 -1.000
- 1.75  /   8: -1.122 -0.861
- 2     /   9: -1.225 -0.707
- 2.25  /  10: -1.307 -0.541
- 2.5   /  11: -1.366 -0.366
- 2.75  /  12: -1.402 -0.185
- 3     /  13: -1.414 -0.000
- 3.25  /  14: -1.402  0.185
- 3.5   /  15: -1.366  0.366
- 3.75  /  16: -1.307  0.541
- 4     /  17: -1.225  0.707
- 4.25  /  18: -1.122  0.861
- 4.5   /  19: -1.000  1.000
- 4.75  /  20: -0.861  1.122
- 5     /  21: -0.707  1.225
- 5.25  /  22: -0.541  1.307
- 5.5   /  23: -0.366  1.366
- 5.75  /  24: -0.185  1.402
- 6     /  25: -0.000  1.414
- 6.25  /  26:  0.185  1.402
- 6.5   /  27:  0.366  1.366
- 6.75  /  28:  0.541  1.307
- 7     /  29:  0.707  1.225
- 7.25  /  30:  0.861  1.122
- 7.5   /  31:  1.000  1.000
- 7.75  /  32:  1.122  0.861
- 8     /  33:  1.225  0.707
- 8.25  /  34:  1.307  0.541
- 8.5   /  35:  1.366  0.366
- 8.75  /  36:  1.402  0.185
- 9     /  37:  1.414  0.000
- 9.25  /  38:  1.402 -0.185
- 9.5   /  39:  1.366 -0.366
- 9.75  /  40:  1.307 -0.541
- 10    /  41:  1.225 -0.707
- 10.25 /  42:  1.122 -0.861
- 10.5  /  43:  1.000 -1.000
- 10.75 /  44:  0.861 -1.122
- 11    /  45:  0.707 -1.225
- 11.25 /  46:  0.541 -1.307
- 11.5  /  47:  0.366 -1.366
- 11.75 /  48:  0.185 -1.402
- 12    /  49:  0.000 -1.414
- 12.25 /  50: -0.185 -1.402
- 12.5  /  51: -0.366 -1.366
- 12.75 /  52: -0.541 -1.307
- 13    /  53: -0.707 -1.225
- 13.25 /  54: -0.861 -1.122
- 13.5  /  55: -1.000 -1.000
- 13.75 /  56: -1.122 -0.861
- 14    /  57: -1.225 -0.707
- 14.25 /  58: -1.307 -0.541
- 14.5  /  59: -1.366 -0.366
- 14.75 /  60: -1.402 -0.185
- 15    /  61: -1.414 -0.000
- 15.25 /  62: -1.402  0.185
- 15.5  /  63: -1.366  0.366
- 15.75 /  64: -1.307  0.541
- 16    /  65: -1.225  0.707
- 16.25 /  66: -1.122  0.861
- 16.5  /  67: -1.000  1.000
- 16.75 /  68: -0.861  1.122
- 17    /  69: -0.707  1.225
- 17.25 /  70: -0.541  1.307
- 17.5  /  71: -0.366  1.366
- 17.75 /  72: -0.185  1.402
- 18    /  73: -0.000  1.414
- 18.25 /  74:  0.185  1.402
- 18.5  /  75:  0.366  1.366
- 18.75 /  76:  0.541  1.307
- 19    /  77:  0.707  1.225
- 19.25 /  78:  0.861  1.122
- 19.5  /  79:  1.000  1.000
- 19.75 /  80:  1.122  0.861
- 20    /  81:  1.225  0.707
- 20.25 /  82:  1.307  0.541
- 20.5  /  83:  1.366  0.366
- 20.75 /  84:  1.402  0.185
- 21    /  85:  1.414  0.000
- 21.25 /  86:  1.402 -0.185
- 21.5  /  87:  1.366 -0.366
- 21.75 /  88:  1.307 -0.541
- 22    /  89:  1.225 -0.707
- 22.25 /  90:  1.122 -0.861
- 22.5  /  91:  1.000 -1.000
- 22.75 /  92:  0.861 -1.122
- 23    /  93:  0.707 -1.225
- 23.25 /  94:  0.541 -1.307
- 23.5  /  95:  0.366 -1.366
- 23.75 /  96:  0.185 -1.402
- 24    /  97:  0.000 -1.414
- 24.25 /  98: -0.185 -1.402
- 24.5  /  99: -0.366 -1.366
- 24.75 / 100: -0.541 -1.307
- 25    / 101: -0.707 -1.225
- 25.25 / 102: -0.861 -1.122
- 25.5  / 103: -1.000 -1.000
- 25.75 / 104: -1.122 -0.861
- 26    / 105: -1.225 -0.707
- 26.25 / 106: -1.307 -0.541
- 26.5  / 107: -1.366 -0.366
- 26.75 / 108: -1.402 -0.185
- 27    / 109: -1.414 -0.000
- 27.25 / 110: -1.402  0.185
- 27.5  / 111: -1.366  0.366
- 27.75 / 112: -1.307  0.541
- 28    / 113: -1.225  0.707
- 28.25 / 114: -1.122  0.861
- 28.5  / 115: -1.000  1.000
- 28.75 / 116: -0.861  1.122
- 29    / 117: -0.707  1.225
- 29.25 / 118: -0.541  1.307
- 29.5  / 119: -0.366  1.366
- 29.75 / 120: -0.185  1.402
- 30    / 121: -0.000  1.414
- 30.25 / 122:  0.185  1.402
- 30.5  / 123:  0.366  1.366
- 30.75 / 124:  0.541  1.307
- 31    / 125:  0.707  1.225
- 31.25 / 126:  0.861  1.122
- 31.5  / 127:  1.000  1.000
- 31.75 / 128:  1.122  0.861
- 32    / 129:  1.225  0.707
- 32.25 / 130:  1.307  0.541
- 32.5  / 131:  1.366  0.366
- 32.75 / 132:  1.402  0.185
- 33    / 133:  1.414 -0.000
- 33.25 / 134:  1.402 -0.185
- 33.5  / 135:  1.366 -0.366
- 33.75 / 136:  1.307 -0.541
- 34    / 137:  1.225 -0.707
- 34.25 / 138:  1.122 -0.861
- 34.5  / 139:  1.000 -1.000
- 34.75 / 140:  0.861 -1.122
- 35    / 141:  0.707 -1.225
- 35.25 / 142:  0.541 -1.307
- 35.5  / 143:  0.366 -1.366
- 35.75 / 144:  0.185 -1.402
- 36    / 145:  0.000 -1.414
- 36.25 / 146: -0.185 -1.402
- 36.5  / 147: -0.366 -1.366
- 36.75 / 148: -0.541 -1.307
- 37    / 149: -0.707 -1.225
- 37.25 / 150: -0.861 -1.122
- 37.5  / 151: -1.000 -1.000
- 37.75 / 152: -1.122 -0.861
- 38    / 153: -1.225 -0.707
- 38.25 / 154: -1.307 -0.541
- 38.5  / 155: -1.366 -0.366
- 38.75 / 156: -1.402 -0.185
- 39    / 157: -1.414 -0.000
- 39.25 / 158: -1.402  0.185
- 39.5  / 159: -1.366  0.366
- 39.75 / 160: -1.307  0.541
- 40    / 161: -1.225  0.707
- 40.25 / 162: -1.122  0.861
- 40.5  / 163: -1.000  1.000
- 40.75 / 164: -0.861  1.122
- 41    / 165: -0.707  1.225
- 41.25 / 166: -0.541  1.307
- 41.5  / 167: -0.366  1.366
- 41.75 / 168: -0.185  1.402
- 42    / 169: -0.000  1.414
- 42.25 / 170:  0.185  1.402
- 42.5  / 171:  0.366  1.366
- 42.75 / 172:  0.541  1.307
- 43    / 173:  0.707  1.225
- 43.25 / 174:  0.861  1.122
- 43.5  / 175:  1.000  1.000
- 43.75 / 176:  1.122  0.861
- 44    / 177:  1.225  0.707
- 44.25 / 178:  1.307  0.541
- 44.5  / 179:  1.366  0.366
- 44.75 / 180:  1.402  0.185
- 45    / 181:  1.414 -0.000
- 45.25 / 182:  1.402 -0.185
- 45.5  / 183:  1.366 -0.366
- 45.75 / 184:  1.307 -0.541
- 46    / 185:  1.225 -0.707
- 46.25 / 186:  1.122 -0.861
- 46.5  / 187:  1.000 -1.000
- 46.75 / 188:  0.861 -1.122
- 47    / 189:  0.707 -1.225
- 47.25 / 190:  0.541 -1.307
- 47.5  / 191:  0.366 -1.366
- 47.75 / 192:  0.185 -1.402
- 48    / 193:  0.000 -1.414
- 48.25 / 194: -0.185 -1.402
- 48.5  / 195: -0.366 -1.366
- 48.75 / 196: -0.541 -1.307
- 49    / 197: -0.707 -1.225
- 49.25 / 198: -0.861 -1.122
- 49.5  / 199: -1.000 -1.000
- 49.75 / 200: -1.122 -0.861
- 50    / 201: -1.225 -0.707
- 50.25 / 202: -1.307 -0.541
- 50.5  / 203: -1.366 -0.366
- 50.75 / 204: -1.402 -0.185
- 51    / 205: -1.414 -0.000
- 51.25 / 206: -1.402  0.185
- 51.5  / 207: -1.366  0.366
- 51.75 / 208: -1.307  0.541
- 52    / 209: -1.225  0.707
- 52.25 / 210: -1.122  0.861
- 52.5  / 211: -1.000  1.000
- 52.75 / 212: -0.861  1.122
- 53    / 213: -0.707  1.225
- 53.25 / 214: -0.541  1.307
- 53.5  / 215: -0.366  1.366
- 53.75 / 216: -0.185  1.402
- 54    / 217: -0.000  1.414
- 54.25 / 218:  0.185  1.402
- 54.5  / 219:  0.366  1.366
- 54.75 / 220:  0.541  1.307
- 55    / 221:  0.707  1.225
- 55.25 / 222:  0.861  1.122
- 55.5  / 223:  1.000  1.000
- 55.75 / 224:  1.122  0.861
- 56    / 225:  1.225  0.707
- 56.25 / 226:  1.307  0.541
- 56.5  / 227:  1.366  0.366
- 56.75 / 228:  1.402  0.185
- 57    / 229:  1.414  0.000
- 57.25 / 230:  1.402 -0.185
- 57.5  / 231:  1.366 -0.366
- 57.75 / 232:  1.307 -0.541
- 58    / 233:  1.225 -0.707
- 58.25 / 234:  1.122 -0.861
- 58.5  / 235:  1.000 -1.000
- 58.75 / 236:  0.861 -1.122
- 59    / 237:  0.707 -1.225
- 59.25 / 238:  0.541 -1.307
- 59.5  / 239:  0.366 -1.366
- 59.75 / 240:  0.185 -1.402
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          240.0
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+         -3.775E-15
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+         -3.775E-15
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          240.0
  
 ! The sum over all significant EOFs of the outer product of
 ! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -67579,281 +67378,186 @@ list eofsvd_stat(space12)
  1   / 1:   2.00   2.00   2.00
  2   / 2:  50.00  50.00   0.00
  3   / 3:   0.50   0.50   0.00
-list eofsvd_space(space12)
-             VARIABLE : EOFSVD_SPACE(SPACE12)
-             SUBSET   : 3 by 3 points (X-T)
-             1       2       3     
-              1       2       3
- 1   / 1:  0.0000 -0.7071    ....
- 2   / 2: -0.7071 -0.0000    ....
- 3   / 3:    ....    ....    ....
-list eofsvd_tfunc(space12)
-             VARIABLE : EOFSVD_TFUNC(SPACE12)
-             SUBSET   : 3 by 240 points (X-T)
-                 1      2      3    
-                 1      2      3
- 0     /   1: -0.000 -1.414   ....
- 0.25  /   2: -0.185 -1.402   ....
- 0.5   /   3: -0.366 -1.366   ....
- 0.75  /   4: -0.541 -1.307   ....
- 1     /   5: -0.707 -1.225   ....
- 1.25  /   6: -0.861 -1.122   ....
- 1.5   /   7: -1.000 -1.000   ....
- 1.75  /   8: -1.122 -0.861   ....
- 2     /   9: -1.225 -0.707   ....
- 2.25  /  10: -1.307 -0.541   ....
- 2.5   /  11: -1.366 -0.366   ....
- 2.75  /  12: -1.402 -0.185   ....
- 3     /  13: -1.414 -0.000   ....
- 3.25  /  14: -1.402  0.185   ....
- 3.5   /  15: -1.366  0.366   ....
- 3.75  /  16: -1.307  0.541   ....
- 4     /  17: -1.225  0.707   ....
- 4.25  /  18: -1.122  0.861   ....
- 4.5   /  19: -1.000  1.000   ....
- 4.75  /  20: -0.861  1.122   ....
- 5     /  21: -0.707  1.225   ....
- 5.25  /  22: -0.541  1.307   ....
- 5.5   /  23: -0.366  1.366   ....
- 5.75  /  24: -0.185  1.402   ....
- 6     /  25: -0.000  1.414   ....
- 6.25  /  26:  0.185  1.402   ....
- 6.5   /  27:  0.366  1.366   ....
- 6.75  /  28:  0.541  1.307   ....
- 7     /  29:  0.707  1.225   ....
- 7.25  /  30:  0.861  1.122   ....
- 7.5   /  31:  1.000  1.000   ....
- 7.75  /  32:  1.122  0.861   ....
- 8     /  33:  1.225  0.707   ....
- 8.25  /  34:  1.307  0.541   ....
- 8.5   /  35:  1.366  0.366   ....
- 8.75  /  36:  1.402  0.185   ....
- 9     /  37:  1.414  0.000   ....
- 9.25  /  38:  1.402 -0.185   ....
- 9.5   /  39:  1.366 -0.366   ....
- 9.75  /  40:  1.307 -0.541   ....
- 10    /  41:  1.225 -0.707   ....
- 10.25 /  42:  1.122 -0.861   ....
- 10.5  /  43:  1.000 -1.000   ....
- 10.75 /  44:  0.861 -1.122   ....
- 11    /  45:  0.707 -1.225   ....
- 11.25 /  46:  0.541 -1.307   ....
- 11.5  /  47:  0.366 -1.366   ....
- 11.75 /  48:  0.185 -1.402   ....
- 12    /  49:  0.000 -1.414   ....
- 12.25 /  50: -0.185 -1.402   ....
- 12.5  /  51: -0.366 -1.366   ....
- 12.75 /  52: -0.541 -1.307   ....
- 13    /  53: -0.707 -1.225   ....
- 13.25 /  54: -0.861 -1.122   ....
- 13.5  /  55: -1.000 -1.000   ....
- 13.75 /  56: -1.122 -0.861   ....
- 14    /  57: -1.225 -0.707   ....
- 14.25 /  58: -1.307 -0.541   ....
- 14.5  /  59: -1.366 -0.366   ....
- 14.75 /  60: -1.402 -0.185   ....
- 15    /  61: -1.414 -0.000   ....
- 15.25 /  62: -1.402  0.185   ....
- 15.5  /  63: -1.366  0.366   ....
- 15.75 /  64: -1.307  0.541   ....
- 16    /  65: -1.225  0.707   ....
- 16.25 /  66: -1.122  0.861   ....
- 16.5  /  67: -1.000  1.000   ....
- 16.75 /  68: -0.861  1.122   ....
- 17    /  69: -0.707  1.225   ....
- 17.25 /  70: -0.541  1.307   ....
- 17.5  /  71: -0.366  1.366   ....
- 17.75 /  72: -0.185  1.402   ....
- 18    /  73: -0.000  1.414   ....
- 18.25 /  74:  0.185  1.402   ....
- 18.5  /  75:  0.366  1.366   ....
- 18.75 /  76:  0.541  1.307   ....
- 19    /  77:  0.707  1.225   ....
- 19.25 /  78:  0.861  1.122   ....
- 19.5  /  79:  1.000  1.000   ....
- 19.75 /  80:  1.122  0.861   ....
- 20    /  81:  1.225  0.707   ....
- 20.25 /  82:  1.307  0.541   ....
- 20.5  /  83:  1.366  0.366   ....
- 20.75 /  84:  1.402  0.185   ....
- 21    /  85:  1.414  0.000   ....
- 21.25 /  86:  1.402 -0.185   ....
- 21.5  /  87:  1.366 -0.366   ....
- 21.75 /  88:  1.307 -0.541   ....
- 22    /  89:  1.225 -0.707   ....
- 22.25 /  90:  1.122 -0.861   ....
- 22.5  /  91:  1.000 -1.000   ....
- 22.75 /  92:  0.861 -1.122   ....
- 23    /  93:  0.707 -1.225   ....
- 23.25 /  94:  0.541 -1.307   ....
- 23.5  /  95:  0.366 -1.366   ....
- 23.75 /  96:  0.185 -1.402   ....
- 24    /  97:  0.000 -1.414   ....
- 24.25 /  98: -0.185 -1.402   ....
- 24.5  /  99: -0.366 -1.366   ....
- 24.75 / 100: -0.541 -1.307   ....
- 25    / 101: -0.707 -1.225   ....
- 25.25 / 102: -0.861 -1.122   ....
- 25.5  / 103: -1.000 -1.000   ....
- 25.75 / 104: -1.122 -0.861   ....
- 26    / 105: -1.225 -0.707   ....
- 26.25 / 106: -1.307 -0.541   ....
- 26.5  / 107: -1.366 -0.366   ....
- 26.75 / 108: -1.402 -0.185   ....
- 27    / 109: -1.414 -0.000   ....
- 27.25 / 110: -1.402  0.185   ....
- 27.5  / 111: -1.366  0.366   ....
- 27.75 / 112: -1.307  0.541   ....
- 28    / 113: -1.225  0.707   ....
- 28.25 / 114: -1.122  0.861   ....
- 28.5  / 115: -1.000  1.000   ....
- 28.75 / 116: -0.861  1.122   ....
- 29    / 117: -0.707  1.225   ....
- 29.25 / 118: -0.541  1.307   ....
- 29.5  / 119: -0.366  1.366   ....
- 29.75 / 120: -0.185  1.402   ....
- 30    / 121: -0.000  1.414   ....
- 30.25 / 122:  0.185  1.402   ....
- 30.5  / 123:  0.366  1.366   ....
- 30.75 / 124:  0.541  1.307   ....
- 31    / 125:  0.707  1.225   ....
- 31.25 / 126:  0.861  1.122   ....
- 31.5  / 127:  1.000  1.000   ....
- 31.75 / 128:  1.122  0.861   ....
- 32    / 129:  1.225  0.707   ....
- 32.25 / 130:  1.307  0.541   ....
- 32.5  / 131:  1.366  0.366   ....
- 32.75 / 132:  1.402  0.185   ....
- 33    / 133:  1.414 -0.000   ....
- 33.25 / 134:  1.402 -0.185   ....
- 33.5  / 135:  1.366 -0.366   ....
- 33.75 / 136:  1.307 -0.541   ....
- 34    / 137:  1.225 -0.707   ....
- 34.25 / 138:  1.122 -0.861   ....
- 34.5  / 139:  1.000 -1.000   ....
- 34.75 / 140:  0.861 -1.122   ....
- 35    / 141:  0.707 -1.225   ....
- 35.25 / 142:  0.541 -1.307   ....
- 35.5  / 143:  0.366 -1.366   ....
- 35.75 / 144:  0.185 -1.402   ....
- 36    / 145:  0.000 -1.414   ....
- 36.25 / 146: -0.185 -1.402   ....
- 36.5  / 147: -0.366 -1.366   ....
- 36.75 / 148: -0.541 -1.307   ....
- 37    / 149: -0.707 -1.225   ....
- 37.25 / 150: -0.861 -1.122   ....
- 37.5  / 151: -1.000 -1.000   ....
- 37.75 / 152: -1.122 -0.861   ....
- 38    / 153: -1.225 -0.707   ....
- 38.25 / 154: -1.307 -0.541   ....
- 38.5  / 155: -1.366 -0.366   ....
- 38.75 / 156: -1.402 -0.185   ....
- 39    / 157: -1.414 -0.000   ....
- 39.25 / 158: -1.402  0.185   ....
- 39.5  / 159: -1.366  0.366   ....
- 39.75 / 160: -1.307  0.541   ....
- 40    / 161: -1.225  0.707   ....
- 40.25 / 162: -1.122  0.861   ....
- 40.5  / 163: -1.000  1.000   ....
- 40.75 / 164: -0.861  1.122   ....
- 41    / 165: -0.707  1.225   ....
- 41.25 / 166: -0.541  1.307   ....
- 41.5  / 167: -0.366  1.366   ....
- 41.75 / 168: -0.185  1.402   ....
- 42    / 169: -0.000  1.414   ....
- 42.25 / 170:  0.185  1.402   ....
- 42.5  / 171:  0.366  1.366   ....
- 42.75 / 172:  0.541  1.307   ....
- 43    / 173:  0.707  1.225   ....
- 43.25 / 174:  0.861  1.122   ....
- 43.5  / 175:  1.000  1.000   ....
- 43.75 / 176:  1.122  0.861   ....
- 44    / 177:  1.225  0.707   ....
- 44.25 / 178:  1.307  0.541   ....
- 44.5  / 179:  1.366  0.366   ....
- 44.75 / 180:  1.402  0.185   ....
- 45    / 181:  1.414 -0.000   ....
- 45.25 / 182:  1.402 -0.185   ....
- 45.5  / 183:  1.366 -0.366   ....
- 45.75 / 184:  1.307 -0.541   ....
- 46    / 185:  1.225 -0.707   ....
- 46.25 / 186:  1.122 -0.861   ....
- 46.5  / 187:  1.000 -1.000   ....
- 46.75 / 188:  0.861 -1.122   ....
- 47    / 189:  0.707 -1.225   ....
- 47.25 / 190:  0.541 -1.307   ....
- 47.5  / 191:  0.366 -1.366   ....
- 47.75 / 192:  0.185 -1.402   ....
- 48    / 193:  0.000 -1.414   ....
- 48.25 / 194: -0.185 -1.402   ....
- 48.5  / 195: -0.366 -1.366   ....
- 48.75 / 196: -0.541 -1.307   ....
- 49    / 197: -0.707 -1.225   ....
- 49.25 / 198: -0.861 -1.122   ....
- 49.5  / 199: -1.000 -1.000   ....
- 49.75 / 200: -1.122 -0.861   ....
- 50    / 201: -1.225 -0.707   ....
- 50.25 / 202: -1.307 -0.541   ....
- 50.5  / 203: -1.366 -0.366   ....
- 50.75 / 204: -1.402 -0.185   ....
- 51    / 205: -1.414 -0.000   ....
- 51.25 / 206: -1.402  0.185   ....
- 51.5  / 207: -1.366  0.366   ....
- 51.75 / 208: -1.307  0.541   ....
- 52    / 209: -1.225  0.707   ....
- 52.25 / 210: -1.122  0.861   ....
- 52.5  / 211: -1.000  1.000   ....
- 52.75 / 212: -0.861  1.122   ....
- 53    / 213: -0.707  1.225   ....
- 53.25 / 214: -0.541  1.307   ....
- 53.5  / 215: -0.366  1.366   ....
- 53.75 / 216: -0.185  1.402   ....
- 54    / 217: -0.000  1.414   ....
- 54.25 / 218:  0.185  1.402   ....
- 54.5  / 219:  0.366  1.366   ....
- 54.75 / 220:  0.541  1.307   ....
- 55    / 221:  0.707  1.225   ....
- 55.25 / 222:  0.861  1.122   ....
- 55.5  / 223:  1.000  1.000   ....
- 55.75 / 224:  1.122  0.861   ....
- 56    / 225:  1.225  0.707   ....
- 56.25 / 226:  1.307  0.541   ....
- 56.5  / 227:  1.366  0.366   ....
- 56.75 / 228:  1.402  0.185   ....
- 57    / 229:  1.414  0.000   ....
- 57.25 / 230:  1.402 -0.185   ....
- 57.5  / 231:  1.366 -0.366   ....
- 57.75 / 232:  1.307 -0.541   ....
- 58    / 233:  1.225 -0.707   ....
- 58.25 / 234:  1.122 -0.861   ....
- 58.5  / 235:  1.000 -1.000   ....
- 58.75 / 236:  0.861 -1.122   ....
- 59    / 237:  0.707 -1.225   ....
- 59.25 / 238:  0.541 -1.307   ....
- 59.5  / 239:  0.366 -1.366   ....
- 59.75 / 240:  0.185 -1.402   ....
  
+let eofs = eofsvd_space(space12[I=1:3])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    3 r   1                    3                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    3 r   1                    3                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          0.5000
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+          0.0000
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+          0.0000
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          0.5000
+ 
+let tafs = eofsvd_tfunc(space12[I=1:3])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          240.0
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+         -3.775E-15
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+         -3.775E-15
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          240.0
  
 ! If there are no complete time series, the functions should bail with an error
  
 let spacegap = if L ne 2 then spacetime
  
 set mode ignore
+ 
 list eofsvd_stat(spacegap)
 list eofsvd_space(spacegap)
 list eofsvd_tfunc(spacegap)
  
-! clean-up
 set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
  
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
  
-exit/script
+set mode ignore
+ 
+def axis /X=1:2:1 xaxis
+let spacetime = if (i eq 1) then cosT else sinT + 1
+ 
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data.
+! Run each of the eof functions and show the results.
+! Both are equally significant.  Eigenvalues should be 0.5.
+! Other EOF descriptions do not divide the covariance
+! matrix by the number of time values, in which case the
+! the eigenvalues will be much larger, but still equal
+! to each other.
+list eof_stat(spacetime, 1.0)
+ 
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
+! but might be mixed by rotation.
+! This is if the EOF functions are in units of the original data,
+! thus the eigenvectors times the square-root of the eigenvalue.
+! EOF vectors are always orthogonal to each other.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
+! TAF vectors are always orthogonal to each other.
+let tafs = eof_tfunc(spacetime[I=1:2], 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+set mode/last ignore
+ 
+! The sum over all significant EOFs of the outer product of
+! EOF(i) and TAF(i) should return the zero-time-meaned data
+! (original data with the time-series mean subtracted to give
+! a zero mean for each time series).
+! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
+ 
+! clean-up
+set grid abstract
+can var /all
+can grid xytgrid
  
 GO bn_reset bn_eof_simple2
 cancel mode verify
@@ -67866,6 +67570,7 @@ GO bn_eof_simple2
 ! 7/2012
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
+! 11/2017 - still try to test old eof functions, if they are re-implemented
  
 ! Define four locations.
 def axis /X=1:2:1 xaxis
@@ -67909,7 +67614,7 @@ list eofsvd_stat(spacetime)
  
 show func eofsvd_space
 EOFSVD_SPACE(A)
-    Return SVD EOF spacial fields from XYT field
+    Return SVD EOF spatial fields from XYT field
     A: Variable in x,y,t; may be fcn of z,e,f
 ! Ideally:
 ! +- [ 0.35355,  0.0,
@@ -67924,19 +67629,56 @@ EOFSVD_SPACE(A)
 ! The norm^2 of an EOF should be the eigenvalue.
 ! The two EOFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
-             VARIABLE : EOFSVD_SPACE(SPACETIME)
-             SUBSET   : 2 by 2 by 2 points (X-Y-T)
-             1       2     
-              1       2
- ---- L:1 T:   1
- 1   / 1:  0.0635 -0.3478
- 2   / 2: -0.3478 -0.0635
- ---- L:2 T:   2
- 1   / 1:  0.3478  0.0635
- 2   / 2:  0.0635 -0.3478
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             SUBSET   : 2 points (Y)
+             X        : 1
+             1     
+              1
+ 1   / 1:  0.1250
+ 2   / 2:  0.1250
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             SUBSET   : 2 points (Y)
+             X        : 1
+               1      
+               1
+ 1   / 1: -3.123E-17
+ 2   / 2:  2.082E-17
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             SUBSET   : 2 points (Y)
+             X        : 2
+               2      
+               2
+ 1   / 1: -3.123E-17
+ 2   / 2:  2.082E-17
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             SUBSET   : 2 points (Y)
+             X        : 2
+             2     
+              2
+ 1   / 1:  0.1250
+ 2   / 2:  0.1250
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -67948,253 +67690,40 @@ EOFSVD_TFUNC(A)
 ! The norm^2 of a TAF should be the number of time values.
 ! The two TAFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
-             VARIABLE : EOFSVD_TFUNC(SPACETIME)
-             SUBSET   : 2 by 240 points (X-T)
-                 1      2    
-                 1      2
- 0     /   1:  0.254  1.391
- 0.1   /   2:  0.107  1.410
- 0.2   /   3: -0.041  1.414
- 0.3   /   4: -0.188  1.402
- 0.4   /   5: -0.334  1.374
- 0.5   /   6: -0.476  1.332
- 0.6   /   7: -0.612  1.275
- 0.7   /   8: -0.742  1.204
- 0.8   /   9: -0.864  1.120
- 0.9   /  10: -0.976  1.023
- 1     /  11: -1.078  0.916
- 1.1   /  12: -1.168  0.798
- 1.2   /  13: -1.245  0.672
- 1.3   /  14: -1.308  0.538
- 1.4   /  15: -1.357  0.398
- 1.5   /  16: -1.391  0.254
- 1.6   /  17: -1.410  0.107
- 1.7   /  18: -1.414 -0.041
- 1.8   /  19: -1.402 -0.188
- 1.9   /  20: -1.374 -0.334
- 2     /  21: -1.332 -0.476
- 2.1   /  22: -1.275 -0.612
- 2.2   /  23: -1.204 -0.742
- 2.3   /  24: -1.120 -0.864
- 2.4   /  25: -1.023 -0.976
- 2.5   /  26: -0.916 -1.078
- 2.6   /  27: -0.798 -1.168
- 2.7   /  28: -0.672 -1.245
- 2.8   /  29: -0.538 -1.308
- 2.9   /  30: -0.398 -1.357
- 3     /  31: -0.254 -1.391
- 3.1   /  32: -0.107 -1.410
- 3.2   /  33:  0.041 -1.414
- 3.3   /  34:  0.188 -1.402
- 3.4   /  35:  0.334 -1.374
- 3.5   /  36:  0.476 -1.332
- 3.6   /  37:  0.612 -1.275
- 3.7   /  38:  0.742 -1.204
- 3.8   /  39:  0.864 -1.120
- 3.9   /  40:  0.976 -1.023
- 4     /  41:  1.078 -0.916
- 4.1   /  42:  1.168 -0.798
- 4.2   /  43:  1.245 -0.672
- 4.3   /  44:  1.308 -0.538
- 4.4   /  45:  1.357 -0.398
- 4.5   /  46:  1.391 -0.254
- 4.6   /  47:  1.410 -0.107
- 4.7   /  48:  1.414  0.041
- 4.8   /  49:  1.402  0.188
- 4.9   /  50:  1.374  0.334
- 5     /  51:  1.332  0.476
- 5.1   /  52:  1.275  0.612
- 5.2   /  53:  1.204  0.742
- 5.3   /  54:  1.120  0.864
- 5.4   /  55:  1.023  0.976
- 5.5   /  56:  0.916  1.078
- 5.6   /  57:  0.798  1.168
- 5.7   /  58:  0.672  1.245
- 5.8   /  59:  0.538  1.308
- 5.9   /  60:  0.398  1.357
- 6     /  61:  0.254  1.391
- 6.1   /  62:  0.107  1.410
- 6.2   /  63: -0.041  1.414
- 6.3   /  64: -0.188  1.402
- 6.4   /  65: -0.334  1.374
- 6.5   /  66: -0.476  1.332
- 6.6   /  67: -0.612  1.275
- 6.7   /  68: -0.742  1.204
- 6.8   /  69: -0.864  1.120
- 6.9   /  70: -0.976  1.023
- 7     /  71: -1.078  0.916
- 7.1   /  72: -1.168  0.798
- 7.2   /  73: -1.245  0.672
- 7.3   /  74: -1.308  0.538
- 7.4   /  75: -1.357  0.398
- 7.5   /  76: -1.391  0.254
- 7.6   /  77: -1.410  0.107
- 7.7   /  78: -1.414 -0.041
- 7.8   /  79: -1.402 -0.188
- 7.9   /  80: -1.374 -0.334
- 8     /  81: -1.332 -0.476
- 8.1   /  82: -1.275 -0.612
- 8.2   /  83: -1.204 -0.742
- 8.3   /  84: -1.120 -0.864
- 8.4   /  85: -1.023 -0.976
- 8.5   /  86: -0.916 -1.078
- 8.6   /  87: -0.798 -1.168
- 8.7   /  88: -0.672 -1.245
- 8.8   /  89: -0.538 -1.308
- 8.9   /  90: -0.398 -1.357
- 9     /  91: -0.254 -1.391
- 9.1   /  92: -0.107 -1.410
- 9.2   /  93:  0.041 -1.414
- 9.3   /  94:  0.188 -1.402
- 9.4   /  95:  0.334 -1.374
- 9.5   /  96:  0.476 -1.332
- 9.6   /  97:  0.612 -1.275
- 9.7   /  98:  0.742 -1.204
- 9.8   /  99:  0.864 -1.120
- 9.9   / 100:  0.976 -1.023
- 10    / 101:  1.078 -0.916
- 10.1  / 102:  1.168 -0.798
- 10.2  / 103:  1.245 -0.672
- 10.3  / 104:  1.308 -0.538
- 10.4  / 105:  1.357 -0.398
- 10.5  / 106:  1.391 -0.254
- 10.6  / 107:  1.410 -0.107
- 10.7  / 108:  1.414  0.041
- 10.8  / 109:  1.402  0.188
- 10.9  / 110:  1.374  0.334
- 11    / 111:  1.332  0.476
- 11.1  / 112:  1.275  0.612
- 11.2  / 113:  1.204  0.742
- 11.3  / 114:  1.120  0.864
- 11.4  / 115:  1.023  0.976
- 11.5  / 116:  0.916  1.078
- 11.6  / 117:  0.798  1.168
- 11.7  / 118:  0.672  1.245
- 11.8  / 119:  0.538  1.308
- 11.9  / 120:  0.398  1.357
- 12    / 121:  0.254  1.391
- 12.1  / 122:  0.107  1.410
- 12.2  / 123: -0.041  1.414
- 12.3  / 124: -0.188  1.402
- 12.4  / 125: -0.334  1.374
- 12.5  / 126: -0.476  1.332
- 12.6  / 127: -0.612  1.275
- 12.7  / 128: -0.742  1.204
- 12.8  / 129: -0.864  1.120
- 12.9  / 130: -0.976  1.023
- 13    / 131: -1.078  0.916
- 13.1  / 132: -1.168  0.798
- 13.2  / 133: -1.245  0.672
- 13.3  / 134: -1.308  0.538
- 13.4  / 135: -1.357  0.398
- 13.5  / 136: -1.391  0.254
- 13.6  / 137: -1.410  0.107
- 13.7  / 138: -1.414 -0.041
- 13.8  / 139: -1.402 -0.188
- 13.9  / 140: -1.374 -0.334
- 14    / 141: -1.332 -0.476
- 14.1  / 142: -1.275 -0.612
- 14.2  / 143: -1.204 -0.742
- 14.3  / 144: -1.120 -0.864
- 14.4  / 145: -1.023 -0.976
- 14.5  / 146: -0.916 -1.078
- 14.6  / 147: -0.798 -1.168
- 14.7  / 148: -0.672 -1.245
- 14.8  / 149: -0.538 -1.308
- 14.9  / 150: -0.398 -1.357
- 15    / 151: -0.254 -1.391
- 15.1  / 152: -0.107 -1.410
- 15.2  / 153:  0.041 -1.414
- 15.3  / 154:  0.188 -1.402
- 15.4  / 155:  0.334 -1.374
- 15.5  / 156:  0.476 -1.332
- 15.6  / 157:  0.612 -1.275
- 15.7  / 158:  0.742 -1.204
- 15.8  / 159:  0.864 -1.120
- 15.9  / 160:  0.976 -1.023
- 16    / 161:  1.078 -0.916
- 16.1  / 162:  1.168 -0.798
- 16.2  / 163:  1.245 -0.672
- 16.3  / 164:  1.308 -0.538
- 16.4  / 165:  1.357 -0.398
- 16.5  / 166:  1.391 -0.254
- 16.6  / 167:  1.410 -0.107
- 16.7  / 168:  1.414  0.041
- 16.8  / 169:  1.402  0.188
- 16.9  / 170:  1.374  0.334
- 17    / 171:  1.332  0.476
- 17.1  / 172:  1.275  0.612
- 17.2  / 173:  1.204  0.742
- 17.3  / 174:  1.120  0.864
- 17.4  / 175:  1.023  0.976
- 17.5  / 176:  0.916  1.078
- 17.6  / 177:  0.798  1.168
- 17.7  / 178:  0.672  1.245
- 17.8  / 179:  0.538  1.308
- 17.9  / 180:  0.398  1.357
- 18    / 181:  0.254  1.391
- 18.1  / 182:  0.107  1.410
- 18.2  / 183: -0.041  1.414
- 18.3  / 184: -0.188  1.402
- 18.4  / 185: -0.334  1.374
- 18.5  / 186: -0.476  1.332
- 18.6  / 187: -0.612  1.275
- 18.7  / 188: -0.742  1.204
- 18.8  / 189: -0.864  1.120
- 18.9  / 190: -0.976  1.023
- 19    / 191: -1.078  0.916
- 19.1  / 192: -1.168  0.798
- 19.2  / 193: -1.245  0.672
- 19.3  / 194: -1.308  0.538
- 19.4  / 195: -1.357  0.398
- 19.5  / 196: -1.391  0.254
- 19.6  / 197: -1.410  0.107
- 19.7  / 198: -1.414 -0.041
- 19.8  / 199: -1.402 -0.188
- 19.9  / 200: -1.374 -0.334
- 20    / 201: -1.332 -0.476
- 20.1  / 202: -1.275 -0.612
- 20.2  / 203: -1.204 -0.742
- 20.3  / 204: -1.120 -0.864
- 20.4  / 205: -1.023 -0.976
- 20.5  / 206: -0.916 -1.078
- 20.6  / 207: -0.798 -1.168
- 20.7  / 208: -0.672 -1.245
- 20.8  / 209: -0.538 -1.308
- 20.9  / 210: -0.398 -1.357
- 21    / 211: -0.254 -1.391
- 21.1  / 212: -0.107 -1.410
- 21.2  / 213:  0.041 -1.414
- 21.3  / 214:  0.188 -1.402
- 21.4  / 215:  0.334 -1.374
- 21.5  / 216:  0.476 -1.332
- 21.6  / 217:  0.612 -1.275
- 21.7  / 218:  0.742 -1.204
- 21.8  / 219:  0.864 -1.120
- 21.9  / 220:  0.976 -1.023
- 22    / 221:  1.078 -0.916
- 22.1  / 222:  1.168 -0.798
- 22.2  / 223:  1.245 -0.672
- 22.3  / 224:  1.308 -0.538
- 22.4  / 225:  1.357 -0.398
- 22.5  / 226:  1.391 -0.254
- 22.6  / 227:  1.410 -0.107
- 22.7  / 228:  1.414  0.041
- 22.8  / 229:  1.402  0.188
- 22.9  / 230:  1.374  0.334
- 23    / 231:  1.332  0.476
- 23.1  / 232:  1.275  0.612
- 23.2  / 233:  1.204  0.742
- 23.3  / 234:  1.120  0.864
- 23.4  / 235:  1.023  0.976
- 23.5  / 236:  0.916  1.078
- 23.6  / 237:  0.798  1.168
- 23.7  / 238:  0.672  1.245
- 23.8  / 239:  0.538  1.308
- 23.9  / 240:  0.398  1.357
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          240.0
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+         -5.285E-14
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+         -5.285E-14
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          240.0
  
 ! Explanation:
 ! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -68204,19 +67733,110 @@ list tafs[I=1:2]
 !             = (0.0, cosT * sinT, cosT * sinT, 0.0)
 ! Adding these three gives the original data
  
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
+ 
+set mode ignore
+ 
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data.
+! Two are of equal significance with eigenvalues of 0.25.
+! Two are negligable (eigenvalues of zero or close to it).
+list eof_stat(spacetime, 1.0)
+ 
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- [ 0.35355,  0.0,
+!      0.0,     -0.35355 ]  (norm^2 = 0.25)
+!      corresponding to 0.25 * sqrt(2.0) * (cosT^2 - sinT^2)
+!                     = 0.25 * sqrt(2.0) * cos2T
+! and
+! +- [ 0.0,      0.35355,
+!      0.35355,  0.0     ]  (norm^2 = 0.25)
+!      corresponding to 0.25 * sqrt(2.0) * 2 * cosT * sinT
+!                     = 0.25 * sqrt(2.0) * sin2T
+! The norm^2 of an EOF should be the eigenvalue.
+! The two EOFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- sqrt(2.0) * cos2T  (norm^2 = 240)
+! +- sqrt(2.0) * sin2T  (norm^2 = 240)
+! The norm^2 of a TAF should be the number of time values.
+! The two TAFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let tafs = eof_tfunc(spacetime, 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+! Explanation:
+! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
+! EOF1 * TAF1 = (0.5 * cos2T,  0.0, 0.0, -0.5 * cos2T)
+!             = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
+	! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
+!             = (0.0, cosT * sinT, cosT * sinT, 0.0)
+! Adding these three gives the original data
+ 
+set mode/last ignore
+ 
 ! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
 set grid abstract
+can var /all
 can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
- 
-exit/script
  
 ! 6D tests for Ferret v6.8
  
@@ -70058,7 +69678,7 @@ SHOW GRID
  PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
  PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
+ TIME23    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  EAXIS     E                    5 r   1                    5                   full
  FAXIS     F                    4 r   1                    7                   full
 SET GRID/SAVE
@@ -70071,7 +69691,7 @@ SHOW GRID
  PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
  PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
+ TIME23    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  EAXIS     E                    5 r   1                    5                   full
  FAXIS     F                    4 r   1                    7                   full
 SHOW GRID/X=180:165W SALT
@@ -70080,7 +69700,7 @@ SHOW GRID/X=180:165W SALT
  PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
  PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
+ TIME23    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  EAXIS     E                    5 r   1                    5                   full
  FAXIS     F                    4 r   1                    7                   full
  
@@ -70103,7 +69723,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
              TIME: 15-MAR-1983 10:00
              E: 3
              F: 7
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -70120,7 +69740,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1,g=u]
              TIME: 15-MAR-1983 10:00
              E: 3
              F: 7
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -70699,7 +70319,7 @@ use 6dfile
  
 list/i=1/j=15/k=1/l=1/n=1 temp, ereverse(temp)
  WARNING: Listed variables have ambiguous coordinates on axes: E
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
              LONGITUDE: 160.5W
              LATITUDE: 5.5S
              DEPTH (m): 5
@@ -70715,7 +70335,7 @@ M / 4:  33.7500  31.7500
 M / 5:  34.7500  30.7500
 list/i=1/j=15/k=1/l=1/m=1 temp, freverse(temp)
  WARNING: Listed variables have ambiguous coordinates on axes: F
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
              LONGITUDE: 160.5W
              LATITUDE: 5.5S
              DEPTH (m): 5
@@ -70870,8 +70490,8 @@ 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
- allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME23    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
  
@@ -70882,11 +70502,11 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  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
  strip regrid on F: TEMP --> G5DAY            @LIN
- 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
+ reading TEMP     M:246 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:227 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
- 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
+ found   TEMP     M:246 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:214 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]
@@ -70896,7 +70516,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              TIME: 1982 (interpolated)
              E: 1 to 2
              FORECAST: 1982 to 1982
-             DATA SET: ./gtsa056_1_ef.nc
+             DATA SET: ./data/gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
  # flagged as bad  data: 0
@@ -70907,17 +70527,17 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -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: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
+ -DELETE EX#1     M:210 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:224 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   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:214 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:227 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
  strip regrid on F: TEMP --> G5DAY            @AVE
- 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
+ found   TEMP     M:246 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:227 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
@@ -70958,15 +70578,15 @@ LIST temp[g=g5day at ave]
  0.17N / 42:  43.2944  43.2343  43.1825  43.2263  43.4336
  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: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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:214 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:227 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
  strip regrid on F: TEMP --> G5DAY            @LIN
- 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
+ found   TEMP     M:246 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:227 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
@@ -71026,17 +70646,17 @@ set window/size=.5/aspect=.4 1
 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: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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:214 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:227 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
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME23    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:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ reading TEMP     M:227 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]
@@ -71044,53 +70664,53 @@ plot temp
 setting up plot
 PPL plot 869  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME23    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
  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
  strip regrid on F: TEMP --> G5DAY            @LIN
- 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
+ found   TEMP     M:227 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:197 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 870  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:197 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:204 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:230 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
  strip regrid on F: TEMP --> G5DAY            @AVE
- 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
+ found   TEMP     M:227 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:230 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 871  complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:197 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:204 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:230 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
  strip regrid on F: TEMP --> G5DAY            @ASN
- 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
+ found   TEMP     M:227 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:230 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]
@@ -71100,64 +70720,64 @@ 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: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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:197 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:204 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:230 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
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME23    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:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ reading TEMP     M:230 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 873  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME23    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
  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
  strip regrid on F: TEMP --> G5DAY            @LIN
- 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
+ found   TEMP     M:230 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:208 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: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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:194 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:208 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:229 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
  strip regrid on F: TEMP --> G5DAY            @AVE
- 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
+ found   TEMP     M:230 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:229 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: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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:194 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:208 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:229 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
  strip regrid on F: TEMP --> G5DAY            @ASN
- 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
+ found   TEMP     M:230 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:229 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
@@ -71182,10 +70802,10 @@ let a1 = _e[ge=e1pt]+_f[gf=f1pt]
 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: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
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME23    EAXIS     FAX20
+ -DELETE TEMP     M:194 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:208 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:229 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
@@ -71202,16 +70822,16 @@ list a1[ge=eoffset at ave, gf=fax4day at 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 (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
+ pseudo  _E       M:229 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
+ pseudo  _F       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
+ -DELETE _F       M:208 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
+ -DELETE _E       M:229 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
+ regrid  A1       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:229 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
@@ -71236,7 +70856,7 @@ 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 (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
+ -DELETE A1       M:208 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
@@ -71245,10 +70865,10 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
  allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  strip regrid on E: A1 --> (G091)           @SUM
  strip regrid on F: A1 --> ENTERMED         @SUM
- 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
+ found   A1       M:194 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ regrid  A1       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:208 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
@@ -71273,7 +70893,7 @@ 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 (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
+ -DELETE A1       M:229 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
@@ -71282,10 +70902,10 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  strip regrid on E: A1 --> (G091)           @VAR
  strip regrid on F: A1 --> ENTERMED         @VAR
- 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
+ found   A1       M:194 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ regrid  A1       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:229 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
@@ -71311,7 +70931,7 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  
 list a2[ge=eoffset at ave, gf=fax4day at 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
+ -DELETE A1       M:208 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
@@ -71328,16 +70948,16 @@ list a2[ge=eoffset at ave, gf=fax4day at 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 (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
+ pseudo  _E       M:208 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
+ pseudo  _F       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
+ -DELETE _F       M:229 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
+ -DELETE _E       M:208 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
+ regrid  A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:229 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   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
@@ -71362,7 +70982,7 @@ 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 (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:229 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
@@ -71371,10 +70991,10 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  strip regrid on E: A2 --> (G103)           @SUM
  strip regrid on F: A2 --> ENTERMED         @SUM
- 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
+ found   A2       M:188 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ regrid  A2       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:229 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
@@ -71399,7 +71019,7 @@ 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 (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
+ -DELETE A2       M:208 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
@@ -71408,10 +71028,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  strip regrid on E: A2 --> (G103)           @VAR
  strip regrid on F: A2 --> ENTERMED         @VAR
- 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
+ found   A2       M:188 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ regrid  A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:229 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   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
@@ -71439,10 +71059,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
  
 let a1 = _e[ge=e1pt]
  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
+ -DELETE A2       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:188 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
+ -DELETE A1       M:194 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]
@@ -71461,9 +71081,9 @@ list a1[ge=eoffset at max]
  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
+ pseudo  _E       M:194 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
+ regrid  A1       M:229 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
@@ -71471,9 +71091,9 @@ list a1[ge=eoffset at max]
  1.1 / 1:     ....
  2.1 / 2:  2.50000
 list a2[ge=eoffset at max]
- -DELETE _E       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ -DELETE _E       M:194 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
+ -DELETE A1       M:229 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
@@ -71487,9 +71107,9 @@ list a2[ge=eoffset at max]
  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
+ pseudo  _E       M:229 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
+ regrid  A2       M:208 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
@@ -71497,9 +71117,9 @@ list a2[ge=eoffset at max]
  1.1 / 1:  1.50000
  2.1 / 2:  2.50000
 list a4[ge=eoffset at max]
- -DELETE _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ -DELETE _E       M:229 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
+ -DELETE A2       M:208 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
@@ -71513,9 +71133,9 @@ list a4[ge=eoffset at max]
  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
+ pseudo  _E       M:208 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
+ regrid  A4       M:235 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
@@ -71523,9 +71143,9 @@ list a4[ge=eoffset at max]
  1.1 / 1:  1.50000
  2.1 / 2:  2.50000
 list a4[ge=eoffset at min]
- -DELETE _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ -DELETE _E       M:208 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
+ -DELETE A4       M:235 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
@@ -71533,8 +71153,8 @@ list a4[ge=eoffset at min]
  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
+ found   A4       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ regrid  A4       M:235 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
@@ -71543,7 +71163,7 @@ list a4[ge=eoffset at min]
  2.1 / 2:  2.00000
 list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
  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
+ -DELETE A4       M:235 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
@@ -71551,8 +71171,8 @@ list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
  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
+ found   A4       M:229 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ regrid  A4       M:235 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
@@ -71566,7 +71186,7 @@ define axis/f=1-jan-1990:5-jan-1990:24/units=hours ehour
 let afcst = _f[gf=eday]
 list afcst
  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
+ -DELETE A4       M:235 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
@@ -71576,7 +71196,7 @@ list afcst
  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
+ pseudo  _F       M:235 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)
@@ -71597,7 +71217,7 @@ 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:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ -DELETE _F       M:235 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
@@ -71606,8 +71226,8 @@ list afcst[gf=ehour at max]
  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
+ found   AFCST    M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ regrid  AFCST    M:235 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
@@ -71661,23 +71281,23 @@ 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 (G108)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ allocate dynamic grid (G108)          COADSX116_COADSY52_6NORMAL    TIME24    ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
  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
+ reading SST      M:246 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
+ -DELETE SST      M:246 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:246 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
+ -DELETE SST      M:246 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:246 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
+ -DELETE SST      M:246 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:246 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
+ -DELETE SST      M:246 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)
@@ -71698,19 +71318,19 @@ show memory/all  ! show memory-resident variables before canceling dataset
     Peak demand: 540 words
     Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:248 size:72
+ SST[D=fourfiles]                  YE    mr:246 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:242 size:432
+ SST[D=fourfiles]                  YTE   mr:230 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 (G108)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ dealloc  dynamic grid (G108)          COADSX116_COADSY52_6NORMAL    TIME24    ENSEMBLE  NORMAL
  canceling dset fourfiles
- -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
+ -DELETE SST      M:230 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
+ -DELETE SST      M:246 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
     SET MEMORY/SIZE: 25.6 megawords
     Peak demand: 540 words
@@ -71719,17 +71339,17 @@ all data in memory:
  
 ! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
 cancel data/all
- canceling dset ./ens1.nc
- canceling dset ./ens2.nc
- canceling dset ./ens3.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens4.nc
 use coads_climatology
 use ens1, ens2, ens3, ens4
 define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
 ! confirm that it isn't COADS that got hidden
 show data
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -71738,14 +71358,14 @@ show data
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
 cancel data fourfiles
- canceling dset ./ens1.nc
- canceling dset ./ens3.nc
- canceling dset ./ens2.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens4.nc
  canceling dset fourfiles
 show data/brief/all/hidden
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  
 ! Create airt in the other datasets by LET/D definitions.
 use ens1, ens2, ens3, ens4
@@ -71755,11 +71375,11 @@ 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
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME24
  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
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME24
  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
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME24
 show data fourfiles
      currently SET data sets:
     6> fourfiles  (default)  Ensemble aggregation
@@ -71770,32 +71390,32 @@ 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 (G091)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ allocate dynamic grid (G091)          COADSX116_COADSY52_6NORMAL    TIME24    ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   6 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
  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
+ reading AIRT     M:246 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
+ -DELETE AIRT     M:246 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
+ reading SST      M:246 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:227 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:227 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
+ -DELETE AIRT     M:224 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
+ reading SST      M:224 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:227 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:227 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
+ -DELETE AIRT     M:214 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
+ reading SST      M:214 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:227 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:227 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
+ -DELETE AIRT     M:212 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)
@@ -71814,9 +71434,9 @@ 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
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME24
  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
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME24
 show data/files fourfiles_gap
      currently SET data sets:
     7> fourfiles_gap  (default)  Ensemble aggregation
@@ -71825,35 +71445,35 @@ show data/files fourfiles_gap
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
           Member datasets:
-      7.1: ./ens1.nc
+      7.1: ./data/ens1.nc
       7.2: (dummy)
-      7.3: ./ens3.nc
-      7.4: ./ens4.nc
+      7.3: ./data/ens3.nc
+      7.4: ./data/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 (G091)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ allocate dynamic grid (G091)          COADSX116_COADSY52_6NORMAL    TIME24    ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   7 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
  strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
  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
+ reading AIRT     M:227 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
+ -DELETE AIRT     M:227 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ dummy AIRT     M:227 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
+ -DELETE AIRT     M:227 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
+ found   SST      M:246 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:227 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:227 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
+ -DELETE AIRT     M:204 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
+ found   SST      M:214 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:204 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:204 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
+ -DELETE AIRT     M:227 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)
@@ -71910,13 +71530,13 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
  
 show data
      currently SET data sets:
-    1> ./coads_uw.nc
+    1> ./data/coads_uw.nc
  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)
+    2> ./data/navy_uw.nc  (default)
  name     title                             I         J         K         L
  UIN      ZONAL WIND                       1:30      1:30      ...       1:30
  VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30
@@ -71957,14 +71577,14 @@ list/l=3/y=30/x=-59:-51 uwnd[d=1], uwnd[d=2], uwnd[d=3,e=1], uwnd[d=3,e=2], uwnd
 ! Use the other order. As long as we have a file variable, we're ok
 show data/brief    ! see what is *not* hidden
      currently SET data sets:
-    1> ./coads_uw.nc
-    2> ./navy_uw.nc
+    1> ./data/coads_uw.nc
+    2> ./data/navy_uw.nc
     3> windy  (default)  Ensemble aggregation
 cancel data 3
 show data/brief    ! see what is *not* hidden
      currently SET data sets:
-    1> ./coads_uw.nc
-    2> ./navy_uw.nc
+    1> ./data/coads_uw.nc
+    2> ./data/navy_uw.nc
  
 ! Define the ensemble dataset
 ensemble windy = 2,1
@@ -72054,32 +71674,32 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set.  Members are hidden.
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
     6> fourfiles  (default)  Ensemble aggregation
  
 ! If ask for a member set by name or number, do show it
 show data/brief 2
      currently SET data sets:
-    2> ./ens1.nc
+    2> ./data/ens1.nc
 show data/brief ens3
      currently SET data sets:
-    4> ./ens3.nc
+    4> ./data/ens3.nc
  
 ! should show all members plus ensemble
 show data/brief/hidden
      currently SET data sets:
-    1> ./coads_climatology.cdf
-    2> ./ens1.nc
-    3> ./ens2.nc
-    4> ./ens3.nc
-    5> ./ens4.nc
+    1> ./data/coads_climatology.cdf
+    2> ./data/ens1.nc
+    3> ./data/ens2.nc
+    4> ./data/ens3.nc
+    5> ./data/ens4.nc
     6> fourfiles  (default)  Ensemble aggregation
  
 ! Since the members were hidden, they get deleted with the aggregation
 cancel data fourfiles
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
 cancel data/all
  
 ! Cancel a member, then the ensemble gets canceled.
@@ -72089,16 +71709,16 @@ use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
-    4> ./ens3.nc
-    5> ./ens4.nc
+    1> ./data/coads_climatology.cdf
+    4> ./data/ens3.nc
+    5> ./data/ens4.nc
     6> my_ens  (default)  Ensemble aggregation
 cancel data  ens2
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
-    4> ./ens3.nc
-    5> ./ens4.nc
+    1> ./data/coads_climatology.cdf
+    4> ./data/ens3.nc
+    5> ./data/ens4.nc
  
 ! Cancel the ensemble, then hidden members get canceled too
  
@@ -72108,14 +71728,14 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
 ! members hidden, showing only ensemble.
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
     6> my_ens  (default)  Ensemble aggregation
 cancel data my_ens
  
 ! Cancel ensemble dataset: hidden members deleted
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -72125,28 +71745,28 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 show data/brief/files
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
     6> fourfiles     Ensemble aggregation
           Member datasets:
-      6.1: ./ens1.nc
-      6.2: ./ens2.nc
-      6.3: ./ens3.nc
-      6.4: ./ens4.nc
+      6.1: ./data/ens1.nc
+      6.2: ./data/ens2.nc
+      6.3: ./data/ens3.nc
+      6.4: ./data/ens4.nc
     7> some     Ensemble aggregation
           Member datasets:
-      7.1: ./ens1.nc
-      7.2: ./ens2.nc
+      7.1: ./data/ens1.nc
+      7.2: ./data/ens2.nc
     8> more  (default)  Ensemble aggregation
           Member datasets:
-      8.1: ./ens2.nc
-      8.2: ./ens3.nc
-      8.3: ./ens4.nc
+      8.1: ./data/ens2.nc
+      8.2: ./data/ens3.nc
+      8.3: ./data/ens4.nc
  
 ! Cancel a member of all the ensembles.  All the ensembles get deleted.
 cancel data ens2
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  
  
 GO bn_reset bn_6d_lab_mode
@@ -72165,7 +71785,7 @@ use gt4d011
 set mode 6d_lab  ! this is the default setting
 show data
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -72179,7 +71799,7 @@ show data
 cancel mode 6d_lab
 show data
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -72200,7 +71820,7 @@ show grid temp
  PSXT      LONGITUDE          160mr   130.5E               70.5W               full
  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
+ TIME111   TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT21
@@ -72208,7 +71828,7 @@ show grid temp
  PSXT      LONGITUDE          160mr   130.5E               70.5W               full
  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
+ TIME111   TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  
 ! Mode affects output of STAT
  
@@ -72222,7 +71842,7 @@ stat temp
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 99000 (18*22*10*25*1*1)
  # flagged as bad  data: 0
@@ -72238,7 +71858,7 @@ stat temp
              LATITUDE: 3.6667S to 3.6667N
              DEPTH (m): 0 to 100
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 99000 (18*22*10*25)
  # flagged as bad  data: 0
@@ -72252,13 +71872,13 @@ 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
+ dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME111
  getgrid EX#1     C:  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
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME111
  strip limits reconciliation : EX#1
  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:226 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
+ reading TAUX     M:210 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)
@@ -72276,13 +71896,13 @@ list/L=1:8 taux[x=@ave,y=@ave]
  29-SEP-1982 02 / 8: -0.105418
 cancel mode 6d_lab
 list/L=1:8 taux[x=@sum,y=@sum]
- dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
+ dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME111
  getgrid EX#1     C:  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
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME111
  strip limits reconciliation : EX#1
  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]
- found   TAUX     M:226 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
+ found   TAUX     M:210 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
@@ -72342,7 +71962,7 @@ GO err681_dims_direction
 use dims_not_coord
 sh dat
      currently SET data sets:
-    1> ./dims_not_coord.nc  (default)
+    1> ./data/dims_not_coord.nc  (default)
  name     title                             I         J         K         L
  U        zonal current                    1:4       1:7       1:1       ...
  LON_C    uv longitude                     1:4       1:7       ...       ...
@@ -72532,7 +72152,7 @@ GO err682_axis_no_clue
 use xsz.nc
 sh dat
      currently SET data sets:
-    1> ./xsz.nc  (default)
+    1> ./data/xsz.nc  (default)
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:5       1:7       1:3       ...
  
@@ -72700,7 +72320,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72710,13 +72330,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -72753,7 +72373,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72763,13 +72383,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -72795,7 +72415,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72805,13 +72425,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -72837,7 +72457,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72847,13 +72467,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -72870,7 +72490,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72880,13 +72500,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST3                  SHORT     missing_value   SHORT       1    T       -999
                                  _FillValue      SHORT       1    T       -999
@@ -72904,7 +72524,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72914,13 +72534,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -72967,7 +72587,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72977,13 +72597,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73015,7 +72635,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73025,13 +72645,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -73072,7 +72692,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73082,13 +72702,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -73110,7 +72730,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73120,13 +72740,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73148,7 +72768,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73158,13 +72778,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -73186,7 +72806,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73196,13 +72816,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -73220,7 +72840,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73230,13 +72850,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
                                  orig_file_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -73414,7 +73034,7 @@ GO bn_descr_4digit
 use coads_clim_4digit.des
 sh dat
      currently SET data sets:
-    1> ./coads_clim_4digit.des  (default)
+    1> ./data/coads_clim_4digit.des  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6
  
@@ -73449,7 +73069,7 @@ set axis/outtype=float `sst,return=xaxis`
 set axis/outtype=float `sst,return=yaxis`
  !-> set axis/outtype=float COADSY
 set axis/outtype=float `sst,return=taxis`
- !-> set axis/outtype=float TIME10
+ !-> set axis/outtype=float TIME20
  
 save/x=300/y=0:5/clobber/file=mytype.nc sst
 use mytype.nc; sh dat/att mytype.nc; can data mytype
@@ -73458,7 +73078,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73468,13 +73088,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME201)              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_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73492,7 +73112,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -73502,13 +73122,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME201)              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_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -73527,7 +73147,7 @@ set axis/outtype=input `sst,return=xaxis`
 set axis/outtype=input `sst,return=yaxis`
  !-> set axis/outtype=input COADSY
 set axis/outtype=input `sst,return=taxis`
- !-> set axis/outtype=input TIME10
+ !-> set axis/outtype=input TIME20
  
 save/x=300/y=0:5/clobber/file=mytype.nc sst
 use mytype.nc; sh dat/att mytype.nc; can data mytype
@@ -73536,7 +73156,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -73546,13 +73166,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  orig_file_axname
                                                  CHAR        11   F       COADSY46_48
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               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_axname
-                                                 CHAR        6    F       TIME10
+                                                 CHAR        6    F       TIME20
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73577,7 +73197,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73603,7 +73223,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73629,7 +73249,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73922,7 +73542,7 @@ GO err684_delimited_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
+sp cat data/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
@@ -73931,7 +73551,7 @@ sp cat delim_prec.dat
 ! 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
+             DATA SET: ./data/delim_prec.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2 is V2 (degrees_east)(Longitude)
@@ -73947,7 +73567,7 @@ list/i=1:5/prec=10 v1,v2,v3,v4
 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
+             DATA SET: ./data/delim_prec.dat
              X: 0.5 to 4.5
  Column  1: DAY is day
  Column  2: LON is lon (degrees_east)(Longitude)
@@ -74070,15 +73690,15 @@ save/clob/file=a.nc a
 sp ncdump a.nc
 netcdf a {
 dimensions:
-	TIME10 = UNLIMITED ; // (3 currently)
+	TIME20 = UNLIMITED ; // (3 currently)
 variables:
-	double TIME10(TIME10) ;
-		TIME10:units = "hour since 0000-01-01 00:00:00" ;
-		TIME10:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME10:modulo = " " ;
-		TIME10:axis = "T" ;
-		TIME10:standard_name = "time" ;
-	double A(TIME10) ;
+	double TIME20(TIME20) ;
+		TIME20:units = "hour since 0000-01-01 00:00:00" ;
+		TIME20:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME20:modulo = " " ;
+		TIME20:axis = "T" ;
+		TIME20:standard_name = "time" ;
+	double A(TIME20) ;
 		A:missing_value = -1.e+34 ;
 		A:_FillValue = -1.e+34 ;
 		A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
@@ -74086,11 +73706,11 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- TIME10 = 366, 1096.485, 1826.97 ;
+ TIME20 = 366, 1096.485, 1826.97 ;
 
  A = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
@@ -74099,15 +73719,15 @@ save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
 sp ncdump aa.nc
 netcdf aa {
 dimensions:
-	TIME10 = UNLIMITED ; // (3 currently)
+	TIME20 = UNLIMITED ; // (3 currently)
 variables:
-	double TIME10(TIME10) ;
-		TIME10:units = "hour since 0000-01-01 00:00:00" ;
-		TIME10:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME10:modulo = " " ;
-		TIME10:axis = "T" ;
-		TIME10:standard_name = "time" ;
-	double E410(TIME10) ;
+	double TIME20(TIME20) ;
+		TIME20:units = "hour since 0000-01-01 00:00:00" ;
+		TIME20:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME20:modulo = " " ;
+		TIME20:axis = "T" ;
+		TIME20:standard_name = "time" ;
+	double E410(TIME20) ;
 		E410:missing_value = -1.e+34 ;
 		E410:_FillValue = -1.e+34 ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
@@ -74115,11 +73735,11 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- TIME10 = 366, 1096.485, 1826.97 ;
+ TIME20 = 366, 1096.485, 1826.97 ;
 
  E410 = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
@@ -74150,15 +73770,15 @@ save/clob/file=aa.nc/outtype=float sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
 sp ncdump aa.nc
 netcdf aa {
 dimensions:
-	TIME10 = UNLIMITED ; // (3 currently)
+	TIME20 = UNLIMITED ; // (3 currently)
 variables:
-	double TIME10(TIME10) ;
-		TIME10:units = "hour since 0000-01-01 00:00:00" ;
-		TIME10:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME10:modulo = " " ;
-		TIME10:axis = "T" ;
-		TIME10:standard_name = "time" ;
-	float E410(TIME10) ;
+	double TIME20(TIME20) ;
+		TIME20:units = "hour since 0000-01-01 00:00:00" ;
+		TIME20:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME20:modulo = " " ;
+		TIME20:axis = "T" ;
+		TIME20:standard_name = "time" ;
+	float E410(TIME20) ;
 		E410:missing_value = -1.e+34f ;
 		E410:_FillValue = -1.e+34f ;
 		E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
@@ -74166,11 +73786,11 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- TIME10 = 366, 1096.485, 1826.97 ;
+ TIME20 = 366, 1096.485, 1826.97 ;
 
  E410 = -0.09943693, -0.04157686, 0.1414802 ;
 }
@@ -74260,7 +73880,7 @@ GO err684_FillValue_xml
 use fill_value_int.nc
 sh dat/var/xml
 <datasets>
-<dataset name="./fill_value_int.nc" default="true">
+<dataset name="./data/fill_value_int.nc" default="true">
 <title>INT variable with _FillValue -2147483647</title>
 <var name="A_dd">
 <attribute name="units" type="char">
@@ -74610,7 +74230,7 @@ GO bn_dsg_e_x
 use dsg.nc
 sh dat
      currently SET data sets:
-    1> ./dsg.nc  (default)
+    1> ./data/dsg.nc  (default)
  name     title                             I         J         K         L
  ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
  PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
@@ -74623,7 +74243,7 @@ sh dat
  SAL      sal                              1:34      ...       ...       ...
  
 sh att profile
-     attributes for dataset: ./dsg.nc
+     attributes for dataset: ./data/dsg.nc
  profile.missing_value = -1.E+34
  profile._FillValue = -1.E+34
  profile.long_name = profile ID: Cruise and Station 
@@ -74655,7 +74275,7 @@ 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)
+    2> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
  name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
@@ -74667,7 +74287,7 @@ sh dat 2
  PCO2     PCO2                             1:373     ...       ...       ...
  
 sh att (profile)
-     attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+     attributes for dataset: ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
  (profile)._FillValue = -1.E+34
  (profile).actual_range = 70, 90
  (profile).cf_role = profile_id 
@@ -74745,8 +74365,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Wed Sep  6 13:00:05 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "Wed Nov 29 17:34:22 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74782,7 +74402,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74813,7 +74433,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74827,7 +74447,7 @@ data:
 use gappy_bounds.nc
 sh dat
      currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
+    1> ./data/gappy_bounds.nc  (default)
  name     title                             I         J         K         L
  A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6
  
@@ -74835,7 +74455,7 @@ sh dat
 ! See the bounds attribute on the t axis
 sh dat/att
      currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
+    1> ./data/gappy_bounds.nc  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -74876,7 +74496,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74904,7 +74524,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74925,7 +74545,7 @@ GO bn_write_integer_att
  
 use write_int_att.nc
 sh att mhchla
-     attributes for dataset: ./write_int_att.nc
+     attributes for dataset: ./data/write_int_att.nc
  MHCHLA.missing_value = -9999999
  MHCHLA._FillValue = -9999999
  MHCHLA.actual_range = 0.00049, 91.76669
@@ -76366,7 +75986,7 @@ GO err685_lowercaseAxis
 use lowercaseTime.nc
 sh dat
      currently SET data sets:
-    1> ./lowercaseTime.nc  (default)
+    1> ./data/lowercaseTime.nc  (default)
  name     title                             I         J         K         L
  AA                                        ...       ...       ...       1:15
  BB                                        ...       ...       ...       1:8
@@ -76395,7 +76015,7 @@ sh grid aa
  normal    X
  normal    Y
  normal    Z
- TIME17    T                   15 r   1                    15                  full
+ TIME28    T                   15 r   1                    15                  full
 set axis/t0=1-jan-2001/units=days time
  
 ! showed no output
@@ -76441,16 +76061,16 @@ GO err685_use_no_extension
 !  but .des was not being tried.
  
 ! The directory contains files with all three extensions
-sp ls duplicate.*
-duplicate.cdf
-duplicate.des
-duplicate.nc
+sp ls data/duplicate.*
+data/duplicate.cdf
+data/duplicate.des
+data/duplicate.nc
  
 ! The one that's used is .nc
 use duplicate
 sh dat
      currently SET data sets:
-    1> ./duplicate.nc  (default)
+    1> ./data/duplicate.nc  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3
  
@@ -76644,7 +76264,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76667,7 +76287,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76898,7 +76518,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76928,7 +76548,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76949,7 +76569,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76970,7 +76590,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76992,7 +76612,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -77038,14 +76658,14 @@ GO err686_redef_ascii_att
  
 columns/delim=" " EZ.DAT
 sh att v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = V1 
  V1.missing_value = -1.E+34
  
 ! A new attribuge causes no problems
 define att/output v1.comment = "First var from EZ.DAT"
 sh att v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = V1 
  V1.missing_value = -1.E+34
  V1.comment = First var from EZ.DAT 
@@ -77060,7 +76680,7 @@ define att/output v1.units="km"
 define att/output v1.units="meters"
  
 sh att v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = vee one 
  V1.missing_value = -1.E+34
  V1.comment = First var from EZ.DAT 
@@ -77119,7 +76739,7 @@ set var/name=b a
 set var/name=temp salt
 show dat
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -77134,7 +76754,7 @@ show dat
 set var/name=salinity salt
 show dat
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -77154,7 +76774,7 @@ set var/name=psi myvar
 set var/name=diff myvar
 show dat
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -77185,7 +76805,7 @@ GO bn_bad_axis_bounds
 use badbounds.nc
 show data
      currently SET data sets:
-    1> ./badbounds.nc  (default)
+    1> ./data/badbounds.nc  (default)
  name     title                             I         J         K         L
  MONTH_IRREG_BNDS
                                            1:2       ...       ...       1:12
@@ -77213,7 +76833,7 @@ go bn_shortgo
 ! short script for bn_enter_exit_GO
  
 plot/i=1:15/color=red/thick i
-! Exit_GO   
+! Exit_GO           
  
 ! Inside an IF
 let a = 1
@@ -77234,8 +76854,8 @@ LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
  !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
-! Exit_GO             
-! Exit_GO        
+! Exit_GO                    
+! Exit_GO               
  
 ! Inside a REPEAT
 define symbol ok = 0
@@ -77251,7 +76871,7 @@ repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
 ! short script for bn_enter_exit_GO
  
 plot/i=1:15/color=red/thick i
-! Exit_GO             
+! Exit_GO                    
  !-> def sym ok = 2
 !-> REPEAT: L=3
  !-> if 2 then go bn_shortgo
@@ -77260,7 +76880,7 @@ plot/i=1:15/color=red/thick i
 ! short script for bn_enter_exit_GO
  
 plot/i=1:15/color=red/thick i
-! Exit_GO             
+! Exit_GO                    
  !-> def sym ok = 3
  
 cancel redirect
@@ -77425,7 +77045,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77442,7 +77062,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77459,7 +77079,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -77777,7 +77397,7 @@ set mode ignore
 ! caused Ferret to mis-read the time axis
 use badbounds_even.nc
 list var, tbox[gt=var]
-             DATA SET: ./badbounds_even.nc
+             DATA SET: ./data/badbounds_even.nc
              TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
  Column  1: VAR is T (My Variable)
  Column  2: TBOX is TBOX (axis TAX_BB_PTSPAC)
@@ -77794,7 +77414,7 @@ list var, tbox[gt=var]
 ! caused Ferret to mis-read the time axis
 use badbounds_non_enclose
 list var, tbox[gt=var]
-             DATA SET: ./badbounds_non_enclose.nc
+             DATA SET: ./data/badbounds_non_enclose.nc
              TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
  Column  1: VAR is T (My Variable)
  Column  2: TBOX is TBOX (axis TAX_BB_EVEN_NOENC)
@@ -77810,7 +77430,7 @@ list var, tbox[gt=var]
 ! spaced, no point-spacing attribute.
 use badbounds_uneven
 list var, tbox[gt=var]
-             DATA SET: ./badbounds_uneven.nc
+             DATA SET: ./data/badbounds_uneven.nc
              TIME: 02-JAN-2000 12:00 to 02-FEB-2000 12:00
  Column  1: VAR is T (My Variable)
  Column  2: TBOX is TBOX (axis TAX_BB_IRR)
@@ -77920,7 +77540,7 @@ use maize_1.nc, maize_2.nc, maize_3.nc
  
 ! Note the _FillValue,  flag
 sho att maize_yield
-     attributes for dataset: ./maize_3.nc
+     attributes for dataset: ./data/maize_3.nc
  MAIZE_YIELD._FillValue = 9.96921E+36
  MAIZE_YIELD.long_name =  Maize harvest 
  MAIZE_YIELD.units = kgC.m-2.yr-1 
@@ -78116,7 +77736,7 @@ let/d=`sst,r=dsetnum` a = 1
  !-> DEFINE VARIABLE/d=1 a = 1
 sh dat
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -78256,7 +77876,7 @@ sh grid temp
  PSXT      LONGITUDE          160mr   130.5E               70.5W               full
  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
+ TIME111   TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
 let a = temp[x=@ave,y=@ave,L=1]
  
 ! The attribute we ask not to write is not written for this variable
@@ -78272,7 +77892,7 @@ sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
 		PSZT21_10:standard_name = "depth" ;
 		PSZT21_10:bounds = "PSZT21_10_bnds" ;
 	double PSZT21_10_bnds(PSZT21_10, bnds) ;
-	double A(TIME17, PSZT21_10) ;
+	double A(TIME111, PSZT21_10) ;
  
 ! But it was being written for this one. It should not.
 let b =  temp[x=@ave,y=@ave,L=1,d=1]
@@ -78286,7 +77906,7 @@ sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
 		PSZT21_10:standard_name = "depth" ;
 		PSZT21_10:bounds = "PSZT21_10_bnds" ;
 	double PSZT21_10_bnds(PSZT21_10, bnds) ;
-	double B(TIME17, PSZT21_10) ;
+	double B(TIME111, PSZT21_10) ;
  
 ! A variable that depends on more than one dataset.
 use coads_climatology
@@ -78656,7 +78276,7 @@ GO bn_append_dsg
 ! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
  
 sp rm test_save_dsg.nc
-sp cp test_save_dsg_in.nc test_save_dsg.nc
+sp cp data/test_save_dsg_in.nc test_save_dsg.nc
  
 use test_save_dsg.nc
  
@@ -78717,7 +78337,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.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 }
  
 set mode/last upcase
@@ -78733,7 +78353,7 @@ GO bn_global_atts
  
 cancel mode upcase
  
-sp cp global.nc  global_copy.nc
+sp cp data/global.nc  global_copy.nc
 use global_copy.nc
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
@@ -78741,7 +78361,7 @@ define attribute/output lon360.ioos_category = "Location"
 define attribute/output lon360.standard_name = "Longitude"
 define attribute/output lon360.history = "added to test_save_dsg.nc"
 save/quiet/append/file=global_copy.nc lon360
-sp ncdump -h global.nc
+sp ncdump -h data/global.nc
 netcdf global {
 dimensions:
 	trajectory = 1 ;
@@ -78815,7 +78435,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -78829,7 +78449,7 @@ variables:
 ! 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
+sp ncgen -o anew_global.nc data/anew_global.cdl
 use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
@@ -78842,7 +78462,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7.21 (beta/debug)  6-Sep-17 
+ FERRET V7.23 (beta/debug) 29-Nov-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -78860,7 +78480,7 @@ GO bn_conventions_history
 ! 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
+sp cp data/conventions_history_in.nc conventions_history.nc
 use conventions_history
 !
 !  The existing global attributes
@@ -78877,7 +78497,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.21 (beta/debug)  6-Sep-17 
+ ..history = The history of the fileFERRET V7.23 (beta/debug) 29-Nov-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset bn_center_key_labels
@@ -79112,7 +78732,7 @@ sp cat a.txt
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 ! show var/outfile
  
@@ -79138,7 +78758,7 @@ sp cat a.txt
  MYVAR = SST*2
  TWO = 2
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -79152,7 +78772,7 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
 ---------------- Just show data, two show data/clobber commands in a row
 sp cat a.txt
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -79167,7 +78787,7 @@ sp cat a.txt
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 use coads_climatology
 use levitus_climatology
@@ -79178,7 +78798,7 @@ SAY ---------------- Just dataset 1
 ---------------- Just dataset 1
 sp cat a.txt
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -79189,12 +78809,12 @@ SAY ---------------- appending datset 2 by name
 ---------------- appending datset 2 by name
 sp cat a.txt
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  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)
+    2> ./data/levitus_climatology.cdf  (default)
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
@@ -80353,11 +79973,11 @@ say `a[x=@min]`
  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:246 dset:   2 I:      1     82  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading A        M:241 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:238 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:224 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -80370,8 +79990,8 @@ say `b`
  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
+ found   A        M:229 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE B        M:228 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -80668,14 +80288,14 @@ list sst.dimnames
              SUBSET   : 3 points (X)
  1   / 1:"COADSX"
  2   / 2:"COADSY"
- 3   / 3:"TIME10"
+ 3   / 3:"TIME20"
 list dncase(sst.dimnames)
              VARIABLE : DNCASE(SST.DIMNAMES)
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
  1   / 1:"coadsx"
  2   / 2:"coadsy"
- 3   / 3:"time10"
+ 3   / 3:"time20"
 list strlen( sst.dimnames)
              VARIABLE : STRLEN( SST.DIMNAMES)
              FILENAME : coads_climatology.cdf
@@ -80703,7 +80323,7 @@ list ysequence(dncase(sst.dimnames))
              SUBSET   : 3 points (Y)
  1   / 1:"coadsx"
  2   / 2:"coadsy"
- 3   / 3:"time10"
+ 3   / 3:"time20"
  
 GO bn_reset
 cancel mode verify
@@ -81085,7 +80705,7 @@ def grid/x=x4ax/t=t12 txgrid
  FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               1:4       ...       ...       1:12
  
@@ -81115,7 +80735,7 @@ def grid/x=x4ax/t=t12 txgrid
 FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               1:4       ...       ...       1:12
  
@@ -81147,7 +80767,7 @@ def grid/x=x4ax/f=f12 fxgrid
  FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
  TM       Tm                               1:4       ...       ...       ...       ...       1:12
  
@@ -81180,7 +80800,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               ...       1:2       1:4       1:6
  
@@ -81232,7 +80852,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               ...       1:2       1:4       1:6
  
@@ -81284,7 +80904,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
  TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
@@ -81334,7 +80954,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
  TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
@@ -81429,7 +81049,7 @@ GO bn_save_justdim
 use twodtime.nc
 sh dat
      currently SET data sets:
-    1> ./twodtime.nc  (default)
+    1> ./data/twodtime.nc  (default)
  name     title                             I         J         K         L         M         N
  TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
  
@@ -81462,12 +81082,12 @@ GO bn_time2d
 use twodtime.nc
 sh dat
      currently SET data sets:
-    1> ./twodtime.nc  (default)
+    1> ./data/twodtime.nc  (default)
  name     title                             I         J         K         L         M         N
  TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
  
 sh att time
-     attributes for dataset: ./twodtime.nc
+     attributes for dataset: ./data/twodtime.nc
  time.units = calendar Month since 2014-11-01T00:00:00Z 
  time.long_name = GRIB forecast or observation time 
  time.calendar = proleptic_gregorian 
@@ -81507,15 +81127,15 @@ let/title=March sst3 = sst[l=3]
 plot/x=300/y=20:65 sst1,sst2,sst3
 sh sym lab7,lab8,lab9
 LAB7 = "SST1[T=16-JAN 06:00]"
-LAB9 = "SST3[T=17-MAR 02:58]"
 LAB8 = "SST2[T=15-FEB 16:29]"
+LAB9 = "SST3[T=17-MAR 02:58]"
  
 ! Draw a plot with legend labeled with the variable titles.
 plot/x=300/y=20:65/key=title  sst1,sst2,sst3
 sh sym lab7,lab8,lab9
 LAB7 = "January"
-LAB9 = "March"
 LAB8 = "February"
+LAB9 = "March"
  
 GO bn_reset bn_DQ
 cancel mode verify
@@ -81685,41 +81305,41 @@ list a
  2   / 2:""foobar""
  
 ! ======
-list    {SPAWN:"ls weird_name1.cdf","foobar"}
-             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+list    {SPAWN:"ls data/weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
-let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
+let a = {SPAWN:"ls data/weird_name1.cdf","foobar"}
 list a
-             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
  
-list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
-             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list    {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
-let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
+let a = {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
 list a
-             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
  
-list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
-             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list    {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+             VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
-let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
+let a = {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
 list a
-             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
  
 ! ======
 ! in repl_exprns:
@@ -81905,33 +81525,33 @@ SHOW ATTRIBUTE/ALL foobar
  foobar.some_text = "quoted attribute" 
  
 ! ======
-SPAWN    "ls weird_name1.*"
-weird_name1.cdf
-SPAWN _DQ_ls weird_name1.*_DQ_
-weird_name1.cdf
+SPAWN    "ls data/weird_name1.*"
+data/weird_name1.cdf
+SPAWN _DQ_ls data/weird_name1.*_DQ_
+data/weird_name1.cdf
  
 ! ======
-LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LET a = {"first.nc", SPAWN:   "ls data/weird_name1.*"   ,"last.nc"}
 LIST a
-             VARIABLE : {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+             VARIABLE : {"first.nc", SPAWN:   "ls data/weird_name1.*"   ,"last.nc"}
              SUBSET   : 3 points (X)
- 1   / 1:"first.nc"       
- 2   / 2:"weird_name1.cdf"
- 3   / 3:"last.nc"        
-LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ 1   / 1:"first.nc"            
+ 2   / 2:"data/weird_name1.cdf"
+ 3   / 3:"last.nc"             
+LET a = {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
 LIST a
-             VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+             VARIABLE : {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
              SUBSET   : 3 points (X)
- 1   / 1:"first.nc"       
- 2   / 2:"weird_name1.cdf"
- 3   / 3:"last.nc"        
+ 1   / 1:"first.nc"            
+ 2   / 2:"data/weird_name1.cdf"
+ 3   / 3:"last.nc"             
  
 ! =========================
 ! !!!!!!  TEMPORARY LINE
 ! !!!!!!  see bug report err693_xeq_show.jnl
 show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
      currently SET data sets:
-    1> ./weird_name1.cdf  (default)
+    1> ./data/weird_name1.cdf  (default)
  name     title                             I         J         K         L
  v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
@@ -82094,7 +81714,7 @@ GO err694_longname_showdat
 !
 ! Make a file whose name starts the same as file with long name.
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
-sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
  
 use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
  
@@ -82102,7 +81722,7 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 ! this previously returned an unknown dataset error
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
-    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
+    1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
  name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
@@ -82120,7 +81740,7 @@ sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
 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
+    1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
  name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
@@ -82500,7 +82120,7 @@ show att sst
  SST.long_name = SST_IN 
  SST.units = Deg C 
  SST.missing_value = -1.E+34
- SST.coordinates = RUN TIME16 TF_TIMES TIME16 LAT LON1 
+ SST.coordinates = RUN TIME27 TF_TIMES TIME27 LAT LON1 
  SST._ftime2d = TF_TIMES 
  SST._cal_t_ax = TF_CAL_T 
  SST._lag_f_ax = TF_LAG_F 
@@ -82970,20 +82590,20 @@ SET VAR/layerz=depth temp[d=levitus_3d_subset]
 SHOW VAR/LAYERZ/d=levitus_3d_subset temp
   DEPTH holds the designated vertical (layerz) coordinates of TEMP
 SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
-     attributes for dataset: ./levitus_3d_subset.nc
+     attributes for dataset: ./data/levitus_3d_subset.nc
  TEMP.__LayerzRef_ = DEPTH 
 ! modify the layerz link
 SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
 SHOW VAR/LAYERZ/d=levitus_3d_subset temp
   NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
 SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
-     attributes for dataset: ./levitus_3d_subset.nc
+     attributes for dataset: ./data/levitus_3d_subset.nc
  TEMP.__LayerzRef_ = NEWDEPTH 
 cancel var/layerz temp[d=levitus_3d_subset]
 SHOW VAR/LAYERZ/d=levitus_3d_subset temp
   No variable holds vertical (layerz) coordinates of TEMP
 SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
-     attributes for dataset: ./levitus_3d_subset.nc
+     attributes for dataset: ./data/levitus_3d_subset.nc
  TEMP.missing_value = -1.E+10
  TEMP._FillValue = -1.E+10
  TEMP.long_name = TEMPERATURE 
@@ -83064,27 +82684,27 @@ LIST/PREC=7 tempz
  getgrid DEPTH    C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL
  getgrid ZPTS     C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
- allocate dynamic grid (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
+ allocate dynamic grid (G096)          NORMAL    NORMAL    (AX114)   NORMAL
+ dealloc  dynamic grid (G096)          NORMAL    NORMAL    (AX114)   NORMAL
+ allocate dynamic grid (G096)          NORMAL    NORMAL    (AX114)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   NORMAL
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   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
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   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
+ pseudo  Z        M:241 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
+ constan cnst     M:235 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   TEMP     M:246 dset:   1 I:      1      2  J:    1    2  K:    1   11  L:   -999   -999
+ -DELETE cnst     M:235 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:232 dset:   0 I:      1      2  J:    1    2  K:    1    1  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M:241 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
+ reading TEMP     M:241 dset:   1 I:      1      2  J:    1    2  K:    7   12  L:   -999   -999
+ auxgrd  TEMP     M:232 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -83106,14 +82726,14 @@ LIST/PREC=7 tempz
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempz
- dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   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
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX114)   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
+ (AX114)   Z                    5 r   100                  500                 full
  normal    T
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
@@ -83220,7 +82840,7 @@ SHOW GRID/z tempz_1pt
  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
+ (AX124)   Z                    1 r   6                    6                   1 pt
  normal    T
  
        K     Z                   ZBOX      ZBOXLO
@@ -83376,7 +82996,7 @@ stat/z=100 temp6d-tempz6d
              T: 0.5 to 2.5
              E: 0.5 to 2.5
              F: 0.5 to 2.5
-             DATA SET: ./levitus_3d_subset.nc
+             DATA SET: ./data/levitus_3d_subset.nc
  
  Total # of data points: 32 (2*2*1*2*2*2)
  # flagged as bad  data: 0
@@ -83393,7 +83013,7 @@ stat/z=400 temp6d-tempz6d
              T: 0.5 to 2.5
              E: 0.5 to 2.5
              F: 0.5 to 2.5
-             DATA SET: ./levitus_3d_subset.nc
+             DATA SET: ./data/levitus_3d_subset.nc
  
  Total # of data points: 32 (2*2*1*2*2*2)
  # flagged as bad  data: 0
@@ -83549,7 +83169,7 @@ LIST/PREC=7 tempz6d_tDep
  48.5S / 2:  6.347000  6.533000
  49.5S / 1:  5.341800  5.563000
 LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
-             DATA SET: ./levitus_3d_subset.nc
+             DATA SET: ./data/levitus_3d_subset.nc
              LONGITUDE: 120E to 122E
              LATITUDE: 50S to 48S
              DEPTH (m): 87.5 to 175
@@ -86848,7 +86468,7 @@ LET var1 =  FLOATSTR(sst-10,"(i5.5)")
 LET var2 =  FLOATSTR(sst-10,"(i05)")
  
 LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 91S to 11S
              LONGITUDE: 165W
              TIME: 16-JAN 06:00
@@ -86904,7 +86524,7 @@ list  floatstr(a, "(f04.1)")
 LET var1 =  FLOATSTR(sst-20,"(f5.1)")
 LET var2 =  FLOATSTR(sst-20,"(f05.1)")
 LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 91S to 11S
              LONGITUDE: 165W
              TIME: 16-JAN 06:00
@@ -86940,7 +86560,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
 LET var1 =  FLOATSTR(sst-20,"(f0.0)")
 LET var2 =  FLOATSTR(sst-20,"(I0)")
 LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 91S to 11S
              LONGITUDE: 165W
              TIME: 16-JAN 06:00
@@ -86999,7 +86619,7 @@ sh grid/l=1:4444 temp
  LON1      LONGITUDE            1 r   97.45W               97.45W              full
  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
+ TIME28    TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
@@ -87021,13 +86641,13 @@ USE coads_climatology
  
 SHOW DATA 1
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  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)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -87594,7 +87214,7 @@ GO err696_ft_calendars
 use ft_cal_one.nc
 sh dat
      currently SET data sets:
-    1> ./ft_cal_one.nc  (default)
+    1> ./data/ft_cal_one.nc  (default)
  name     title                             I         J         K         L         M         N
  TIMEVAR  GRIB forecast or observation ti  ...       ...       ...       1:2       ...       1:3
  
@@ -87678,20 +87298,20 @@ GO err696_time_overlay
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
 def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
 sp date
-Wed Sep  6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Wed Sep  6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
  
 sp date
-Wed Sep  6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Wed Sep  6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
  
 GO bn_reset
 cancel mode verify
@@ -87748,7 +87368,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -87836,10 +87456,10 @@ define data/agg/E fourfiles = ens1, ens3, ens2, ens4
  
 show data/brief
      currently SET data sets:
-    1> ./ens1.nc
-    2> ./ens2.nc
-    3> ./ens3.nc
-    4> ./ens4.nc
+    1> ./data/ens1.nc
+    2> ./data/ens2.nc
+    3> ./data/ens3.nc
+    4> ./data/ens4.nc
     5> fourfiles  (default)  Ensemble aggregation
  
 list/i=3 sst[T=@ave]
@@ -87861,11 +87481,11 @@ show mem/all
     Peak demand: 540 words
     Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:242 size:72
+ SST[D=fourfiles]                  YE    mr:230 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:194 size:432
+ SST[D=fourfiles]                  YTE   mr:175 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              ... / ...
  
@@ -87991,7 +87611,7 @@ IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS
    let//d=coads_sst myvar = 1
    sh dat
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -88613,7 +88233,7 @@ go err696_write_no_dim
 use nodim
 sh dat
      currently SET data sets:
-    1> ./nodim.nc  (default)
+    1> ./data/nodim.nc  (default)
  name     title                             I         J         K         L
  EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
  NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
@@ -88650,7 +88270,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89632,7 +89252,7 @@ sp ncdump a.nc | grep -i coadsx
 		COADSX:new2 = 1.f, 3.f, 6.f ;
 		COADSX:axis = "X" ;
 		COADSX:standard_name = "longitude" ;
-	float SST(TIME10, COADSY, COADSX) ;
+	float SST(TIME20, COADSY, COADSX) ;
  COADSX = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 
  
 can dat/all
@@ -89651,7 +89271,7 @@ 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) ;
+	float SST(TIME20, COADSY, COADSX) ;
 		SST:missing_value = -1.e+34f ;
 		SST:_FillValue = -1.e+34f ;
 		SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -89751,7 +89371,7 @@ 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
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -90047,7 +89667,7 @@ show data/brief
     2> myagg1
     3> myagg2
     4> myAgg2
-    5> ./bn_aggregate_t.jnl  (default)
+    5> ./v6jnls/bn_aggregate_t.jnl  (default)
  
 ! define a long aggregation
 define data/agg/t myagg8 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc, tmp/tagg_reg_4.nc,tmp/tagg_reg_5.nc, tmp/tagg_reg_6.nc,tmp/tagg_reg_7.nc, tmp/tagg_reg_8.nc
@@ -90115,7 +89735,7 @@ show data/full  ! all 4 datasets
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
 11-JAN-1980 00:00 -> 20-JAN-1980 00:00    tmp/tagg_reg_2.nc
  
-    5> ./bn_aggregate_t.jnl
+    5> ./v6jnls/bn_aggregate_t.jnl
  
      T-aggregation of 2 netCDF files
  name     title                             I         J         K         L
@@ -90833,7 +90453,7 @@ show grid/T air
  LON1      LONGITUDE          180mr   1E                   1W                  full
  LAT       LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME17    TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
+ TIME28    TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
@@ -90925,10 +90545,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/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/trunk/FERRET/bench/tmp/test1.nc
-/home/users/ansley/build/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
@@ -90955,17 +90575,17 @@ show data/brief
 canc data/all
  
 use "($use_abs_path)"
- !-> SET DAT/FORM=CDF "/home/users/ansley/build/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/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/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/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
@@ -91031,10 +90651,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/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/trunk/FERRET/bench/tmp/testMe.jnl
-/home/users/ansley/build/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"
@@ -91047,13 +90667,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/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/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
@@ -91069,13 +90689,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/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/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
@@ -91282,7 +90902,7 @@ show grid sst[x=240:320,y=0,t=@ave]
  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
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
  
 ! Modulo axes ask for superset
 show grid sst[x=0:540,L=1:15]
@@ -91291,7 +90911,7 @@ show grid sst[x=0:540,L=1:15]
  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        15 pts
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        15 pts
  
 ! Constant: full abstract grid
 show grid 1
@@ -91329,7 +90949,7 @@ show grid `sst,return=grid`
  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
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  
 ! grid of last variable loaded
 load sst[x=240,y=@iin,t=@ave]
@@ -91341,7 +90961,7 @@ show grid
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
  
 ! Result grid is full grid
 let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
@@ -91351,7 +90971,7 @@ show grid var
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 ! transform on single-point range is equiv. to single-point subset
  
@@ -91363,7 +90983,7 @@ show grid var
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
 set mode/last interpolate
 let var = sst[X=30:30.1 at max]
 show grid var
@@ -91372,7 +90992,7 @@ show grid var
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
@@ -91380,18 +91000,18 @@ show grid var
     GRID (G086)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX111)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX114)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
     GRID (G085)
  name       axis              # pts   start                end                 subset
- (AX113)   LONGITUDE           60 r   21E                  15E(375)            60 pts
- (AX133)   LATITUDE            45 r   89S                  87N                 45 pts
+ (AX125)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX107)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 ! regridding
  
@@ -91427,7 +91047,7 @@ show grid var
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 let var = sst[y=-30:30 at iin]
 show grid var
@@ -91436,7 +91056,7 @@ show grid var
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 30 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  
 use levitus_3d_subset
 let var = temp[z=@weq:20]
@@ -91481,7 +91101,7 @@ show grid ffta(sample_function)
  normal    X
  normal    Y
  normal    Z
- (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ (AX113)   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 (G085)
@@ -91489,7 +91109,7 @@ show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
  normal    X
  normal    Y
  normal    Z
- (AX133)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ (AX107)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
     GRID (G084)
@@ -91497,7 +91117,7 @@ show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
  XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
- (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ (AX113)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
  
 can dat/all
  
@@ -91514,14 +91134,14 @@ sh grid tempz
  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
- (AX111)   Z                    5 r   100                  500                 full
+ (AX114)   Z                    5 r   100                  500                 full
  normal    T
 sh grid tempz[z=100:400]
     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
- (AX111)   Z                    5 r   100                  500                 4 pts
+ (AX114)   Z                    5 r   100                  500                 4 pts
  normal    T
  
 ! and with a grid-changing function thrown in
@@ -91708,7 +91328,7 @@ show data/attr my_fmrc
   
  FCST                  DOUBLE    long_name       CHAR        18   T       FIELD + FCST_ERROR
                                  missing_value   DOUBLE      1    T       -1.E+34
-                                 coordinates     CHAR        34   T       RUN TIME16 TF_TIMES TIME16 YAX XAX
+                                 coordinates     CHAR        34   T       RUN TIME27 TF_TIMES TIME27 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
@@ -91722,7 +91342,7 @@ show data/attr my_fmrc
   
  FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
                                  missing_value   DOUBLE      1    T       -1.E+34
-                                 coordinates     CHAR        39   T       TF_CAL_F TIME16 TF_TIMES TIME16 YAX XAX
+                                 coordinates     CHAR        39   T       TF_CAL_F TIME27 TF_TIMES TIME27 YAX XAX
                                  _ftime2d        CHAR        8    T       TF_TIMES
                                  _cal_t_ax       CHAR        8    T       TF_CAL_T
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
@@ -92647,13 +92267,13 @@ cancel data my_fmrc
 fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
 show data/brief
      currently SET data sets:
-    6> ./bn_aggregate_f.jnl  (default)  Forecast aggregation
+    6> ./v6jnls/bn_aggregate_f.jnl  (default)  Forecast aggregation
  
 ! the same agg using the very same files under a different name
 fmrc/hide my_fmrc = tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
 show data/full
      currently SET data sets:
-    6> ./bn_aggregate_f.jnl     Forecast aggregation
+    6> ./v6jnls/bn_aggregate_f.jnl     Forecast aggregation
      Forecast series of 5 datasets patterned on fcst_3.nc
  name     title                             I         J         K         L         M         N
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:5
@@ -92709,7 +92329,7 @@ show data/br/hidden
     3> tmp/fcst_5.nc
     4> tmp/one_var_fcst_6.nc
     5> tmp/fcst_3.nc
-    6> ./bn_aggregate_f.jnl     Forecast aggregation
+    6> ./v6jnls/bn_aggregate_f.jnl     Forecast aggregation
 cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
 show data
      currently SET data sets:
@@ -93476,7 +93096,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        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.22 (beta/debug) 25-Oct-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
@@ -93761,7 +93381,7 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  FCST                  DOUBLE    long_name       CHAR        13   T       some variable
                                  missing_value   DOUBLE      1    T       -1.E+34
-                                 coordinates     CHAR        33   T       RUN TIME16 TF_TIMES ZAX1 YAX1 XAX
+                                 coordinates     CHAR        33   T       RUN TIME27 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
@@ -93776,7 +93396,7 @@ SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
   
  FCST_2                DOUBLE    long_name       CHAR        16   T       another variable
                                  missing_value   DOUBLE      1    T       -1.E+34
-                                 coordinates     CHAR        39   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX1 XAX
+                                 coordinates     CHAR        39   T       TF_CAL_F1 TIME27 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
@@ -93924,7 +93544,7 @@ let nv = ..nvars
 let nd = ..ndims
 let vnames = ..varnames
 list/DAT=1 nv, nd
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
@@ -93948,14 +93568,14 @@ list/DAT=1 vnames
  12   / 12:"PSI"   
  
 list/DAT=coads_climatology nv,nd
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
                 NV      ND
 I / *:     1.000000  3.000000
 list/DAT=gt4d011 nv,nd
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
@@ -93974,7 +93594,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.21 (beta/debug)  6-Sep-17 
+ ..history = FERRET V7.23 (beta/debug) 29-Nov-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -93995,7 +93615,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.21 (beta/debug)  6-Sep-17 
+ ..history = FERRET V7.23 (beta/debug) 29-Nov-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -94019,9 +93639,9 @@ show grid
     GRID (G200)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX114)   LATITUDE           201 r   10S                  10N                 201 pts
+ (AX107)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  
 ! LIST/DAT=, LET/DAT=,
 can dat/all
@@ -94048,7 +93668,7 @@ list/DAT=3 temp.history
 let/DAT=2 temp = sst + 0*z[z=1:5:1]
 sh dat 2
      currently SET data sets:
-    2> ./coads_climatology.cdf
+    2> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -94070,7 +93690,7 @@ stat/DATASET=1 elev
              T (day): 1.7837
              E:  N/A
              F:  N/A
-             DATA SET: ./err491_attval.cdf
+             DATA SET: ./data/err491_attval.cdf
  
  Total # of data points: 4445 (35*127*1*1*1*1)
  # flagged as bad  data: 3065
@@ -94121,9 +93741,9 @@ GO bn_speedtest
 ! bn_speedtest.jnl
 ! issue large numbers of commands, timing with clock time
 can mode verify
-10K LET commands LET a = 0 takes  0.5519999999999925  seconds
-Second 10K LET commands LET a = 0 takes  1.209  seconds
-5K LOAD with transform takes  1.638  seconds
+10K LET commands LET a = 0 takes  1.987  seconds
+Second 10K LET commands LET a = 0 takes  3.251  seconds
+5K LOAD with transform takes  3.652  seconds
  
 GO bn_reset bn_show_noupcase
 cancel mode verify
@@ -94164,13 +93784,13 @@ USE a1478.nc
 USE a_cartesian_bug1179.nc
 show data
      currently SET data sets:
-    1> ./a1478.nc
+    1> ./data/a1478.nc
  name     title                             I         J         K         L
  lat1_5_bnds
                                            1:2       1:5       ...       ...
  olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  
-    2> ./a_cartesian_bug1179.nc  (default)
+    2> ./data/a_cartesian_bug1179.nc  (default)
  name     title                             I         J         K         L
  temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
@@ -94205,7 +93825,7 @@ LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
  
 show data
      currently SET data sets:
-    1> ./a1478.nc
+    1> ./data/a1478.nc
  name     title                             I         J         K         L
  lat1_5_bnds
                                            1:2       1:5       ...       ...
@@ -94213,7 +93833,7 @@ show data
  ------------------------------
  zvar[D=a1478] = 2*TEMP[D=2]
  
-    2> ./a_cartesian_bug1179.nc  (default)
+    2> ./data/a_cartesian_bug1179.nc  (default)
  name     title                             I         J         K         L
  temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  ------------------------------
@@ -94236,7 +93856,7 @@ say/quiet <data>
 show var/xml
 show data/var/xml
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
 <title> </title>
 <var name="temp">
 <attribute name="units" type="char">
@@ -94301,35 +93921,6 @@ show data/var/xml
    <value><![CDATA[grid_x_T]]></value>
 </attribute>
 </axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>1</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1900-02-15 03:00: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[1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[JULIAN]]></value>
-</attribute>
-</axis>
 <axis name="zt">
 <attribute name="direction" type="char">
    <value><![CDATA[K]]></value>
@@ -94406,87 +93997,6 @@ show data/var/xml
    <value><![CDATA[grid_y_T]]></value>
 </attribute>
 </axis>
-</axes>
-say/quiet </data>
-</data>
- 
-USE a_cartesian_bug1179.nc
- 
-SHO DATA/XML
-<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
-<title> </title>
-<var name="temp" />
-</dataset>
-</datasets>
- 
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
-<title> </title>
-<var name="temp">
-<attribute name="units" type="char">
-   <value><![CDATA[nounits]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[THETA_FO(SALT_EXTRAP,TEMP_EXTRAP,Z[G=TEMP_EXTRAP],0)]]></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="GHU1">
-<axes>
-<xaxis>grid_x_T</xaxis>
-<yaxis>grid_y_T</yaxis>
-<zaxis>zt</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="grid_x_T">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>1</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>79</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>79</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[Nominal Longitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
-   <value><![CDATA[X]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[grid_x_T]]></value>
-</attribute>
-</axis>
 <axis name="TIME">
 <attribute name="direction" type="char">
    <value><![CDATA[L]]></value>
@@ -94516,85 +94026,40 @@ SHO DATA/VAR/XML
    <value><![CDATA[JULIAN]]></value>
 </attribute>
 </axis>
-<axis name="zt">
-<attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
+</axes>
+say/quiet </data>
+</data>
+ 
+USE a_cartesian_bug1179.nc
+ 
+SHO DATA/XML
+<datasets>
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
+<title> </title>
+<var name="temp" />
+</dataset>
+</datasets>
+ 
+SHO DATA/VAR/XML
+<datasets>
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
+<title> </title>
+<var name="temp">
 <attribute name="units" type="char">
-   <value><![CDATA[meters]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>10</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>22.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>157.9952</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[nounits]]></value>
 </attribute>
 <attribute name="long_name" type="char">
-   <value><![CDATA[zt]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
-   <value><![CDATA[z]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[zt]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value>zt_bnds</value>
-</attribute>
-</axis>
-<axis name="grid_y_T">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>1</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-0.25</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>-0.25</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+   <value><![CDATA[THETA_FO(SALT_EXTRAP,TEMP_EXTRAP,Z[G=TEMP_EXTRAP],0)]]></value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="infile_datatype" type="char">
+<attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[Nominal Latitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
-   <value><![CDATA[Y]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[grid_y_T]]></value>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-</axis>
-</axes>
- 
-SHO GRID/XML temp
 <grid name="GHU1">
 <axes>
 <xaxis>grid_x_T</xaxis>
@@ -94603,9 +94068,9 @@ SHO GRID/XML temp
 <taxis>TIME</taxis>
 </axes>
 </grid>
- 
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML grid_x_T
+</var>
+</dataset>
+</datasets>
 <axes>
 <axis name="grid_x_T">
 <attribute name="direction" type="char">
@@ -94642,49 +94107,204 @@ SHO AXIS/XML `temp,return=xaxis`
    <value><![CDATA[grid_x_T]]></value>
 </attribute>
 </axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML grid_y_T
-<axes>
-<axis name="grid_y_T">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>1</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-0.25</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>-0.25</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[Nominal Latitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
-   <value><![CDATA[Y]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[grid_y_T]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML zt
-<axes>
+<axis name="zt">
+<attribute name="direction" type="char">
+   <value><![CDATA[K]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[meters]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>10</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>22.5</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>157.9952</value>
+</attribute>
+<attribute name="positive" type="char">
+   <value><![CDATA[down]]></value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value>uneven</value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[zt]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+   <value><![CDATA[z]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[zt]]></value>
+</attribute>
+<attribute name="bounds" type="char">
+   <value>zt_bnds</value>
+</attribute>
+</axis>
+<axis name="grid_y_T">
+<attribute name="direction" type="char">
+   <value><![CDATA[J]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[degrees_north]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>-0.25</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>-0.25</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[Nominal Latitude of T-cell center]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+   <value><![CDATA[Y]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[grid_y_T]]></value>
+</attribute>
+</axis>
+<axis name="TIME">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1900-02-15 03:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>1900-02-15 03:00: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[1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+   <value><![CDATA[JULIAN]]></value>
+</attribute>
+</axis>
+</axes>
+ 
+SHO GRID/XML temp
+<grid name="GHU1">
+<axes>
+<xaxis>grid_x_T</xaxis>
+<yaxis>grid_y_T</yaxis>
+<zaxis>zt</zaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+ 
+SHO AXIS/XML `temp,return=xaxis`
+ !-> SHO AXIS/XML grid_x_T
+<axes>
+<axis name="grid_x_T">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[degrees_east]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>79</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>79</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[Nominal Longitude of T-cell center]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+   <value><![CDATA[X]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[grid_x_T]]></value>
+</attribute>
+</axis>
+</axes>
+SHO AXIS/XML `temp,return=yaxis`
+ !-> SHO AXIS/XML grid_y_T
+<axes>
+<axis name="grid_y_T">
+<attribute name="direction" type="char">
+   <value><![CDATA[J]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[degrees_north]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>-0.25</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>-0.25</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[Nominal Latitude of T-cell center]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+   <value><![CDATA[Y]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[grid_y_T]]></value>
+</attribute>
+</axis>
+</axes>
+SHO AXIS/XML `temp,return=zaxis`
+ !-> SHO AXIS/XML zt
+<axes>
 <axis name="zt">
 <attribute name="direction" type="char">
    <value><![CDATA[K]]></value>
@@ -94728,7 +94348,7 @@ SHO AXIS/XML `temp,return=zaxis`
 </axis>
 </axes>
 SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME17
+ !-> SHO AXIS/XML TIME28
 <axes>
 <axis name="TIME">
 <attribute name="direction" type="char">
@@ -94767,7 +94387,7 @@ LET/D=a_cartesian_bug1179 temp_180 = temp[X=79E:79E at AVE]
  
 SHOW DATA/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
 <title> </title>
 <var name="temp" />
 <var name="temp_180" />
@@ -94777,12 +94397,12 @@ SHOW DATA/XML
 USE a1478.nc
 SHOW DATA/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
 <title> </title>
 <var name="temp" />
 <var name="temp_180" />
 </dataset>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
 <title> </title>
 <var name="lat1_5_bnds" />
 <var name="olr" />
@@ -94790,7 +94410,7 @@ SHOW DATA/XML
 </datasets>
 SHO DATA/VAR/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
 <title> </title>
 <var name="temp">
 <attribute name="units" type="char">
@@ -94879,35 +94499,6 @@ SHO DATA/VAR/XML
    <value><![CDATA[grid_x_T]]></value>
 </attribute>
 </axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>1</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1900-02-15 03:00: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[1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[JULIAN]]></value>
-</attribute>
-</axis>
 <axis name="zt">
 <attribute name="direction" type="char">
    <value><![CDATA[K]]></value>
@@ -94984,8 +94575,37 @@ SHO DATA/VAR/XML
    <value><![CDATA[grid_y_T]]></value>
 </attribute>
 </axis>
+<axis name="TIME">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1900-02-15 03:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>1900-02-15 03:00: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[1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+   <value><![CDATA[JULIAN]]></value>
+</attribute>
+</axis>
 </axes>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
 <title> </title>
 <var name="lat1_5_bnds">
 <attribute name="ferret_datatype" type="char">
@@ -95086,26 +94706,6 @@ SHO DATA/VAR/XML
    <value><![CDATA[lon1_5]]></value>
 </attribute>
 </axis>
-<axis name="bnds">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>2</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>2</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-</axis>
 <axis name="lat1_5">
 <attribute name="direction" type="char">
    <value><![CDATA[J]]></value>
@@ -95135,6 +94735,26 @@ SHO DATA/VAR/XML
    <value>lat1_5_bnds</value>
 </attribute>
 </axis>
+<axis name="bnds">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>2</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>2</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value>no</value>
+</attribute>
+</axis>
 </axes>
  
 ! tests of SHOW VAR/XML for global variables.
@@ -95202,7 +94822,7 @@ let/d=1/title="coads myvar" myvar = 1
 ! Now SHOW DATA/ATT lists the LET/D variables, as SHOW DATA does
 show dat 1
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -95211,7 +94831,7 @@ show dat 1
  
 show dat/att 1
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -95228,7 +94848,7 @@ show dat/att 1
                                  orig_file_axname
                                                  CHAR        6    F       COADSY
   
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME20)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        19   T       1-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  orig_file_axname
@@ -95246,7 +94866,7 @@ show dat/att 1
   
  
 show att myvar
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  myvar.long_name = coads myvar 
  myvar.missing_value = -1.E+34
  
@@ -95266,7 +94886,7 @@ use levitus_climatology
 let/d=2/title="Levitus myvar" myvar = 2
 show dat 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf  (default)
+    2> ./data/levitus_climatology.cdf  (default)
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  ------------------------------
@@ -95274,7 +94894,7 @@ show dat 2
  
 show dat/att 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf  (default)
+    2> ./data/levitus_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -95312,7 +94932,7 @@ show att myvar
  myvar.missing_value = -1.E+34
  
 show att/d=1 myvar
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  myvar.long_name = coads myvar 
  myvar.missing_value = -1.E+34
  
@@ -95340,18 +94960,18 @@ list vnames
 cancel var/all
 show dat
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
-    2> ./levitus_climatology.cdf
+    2> ./data/levitus_climatology.cdf
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
  
 show dat/att 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf
+    2> ./data/levitus_climatology.cdf
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -95394,7 +95014,7 @@ let/d=2/title="Levitus myvar" myvar = 2
 define att/output temp.my_new_att="temperature attrib"
 define att/output myvar.units="meters"
 show att temp
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  TEMP.missing_value = -1.E+10
  TEMP._FillValue = -1.E+10
  TEMP.long_name = TEMPERATURE 
@@ -95402,7 +95022,7 @@ show att temp
  TEMP.units = DEG C 
  TEMP.my_new_att = temperature attrib 
 show att myvar
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  myvar.long_name = Levitus myvar 
  myvar.missing_value = -1.E+34
  myvar.units = meters 
@@ -95412,7 +95032,7 @@ define att/output/d=2 myvar.standard_name = "None"
  
 define att/output/d=1 myvar.units="feet"
 show att/d=1 myvar
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  myvar.long_name = coads myvar 
  myvar.missing_value = -1.E+34
  myvar.units = feet 
@@ -95420,7 +95040,7 @@ save/clobber/file=a.nc myvar[d=1]
 sp ncdump -h a.nc >> all_ncdump.out
  
 show att/d=2 myvar
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  myvar.long_name = Levitus myvar 
  myvar.missing_value = -1.E+34
  myvar.units = meters 
@@ -95764,7 +95384,7 @@ sho command set
  SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
  SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
-      /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+      /TYPE/SWAP/REGULART/DELIMITE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
  SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -95789,7 +95409,7 @@ sho command set l  ! SET LIST
       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
 sho command set d  ! SET DATA
  SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
-      /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+      /TYPE/SWAP/REGULART/DELIMITE/STRICT
 sho command set m  ! SET MODE
  SET MODE/LAST
 sho command set mov! SET MOVIE
@@ -96142,7 +95762,7 @@ sho command/brief v
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET (beta/debug) version7.21:
+ Commands in Program FERRET (beta/debug) version7.23:
  SET
  SHOW
  CANCEL
@@ -96573,7 +96193,7 @@ go err700_reg_axis_check
 use bug2445.nc
 show data
      currently SET data sets:
-    1> ./bug2445.nc  (default)
+    1> ./data/bug2445.nc  (default)
  name     title                             I         J         K         L
  XAX                                       1:5       ...       ...       ...
        (invalid coordinate axis)
@@ -96654,7 +96274,7 @@ go err700_inherit_all
 ! This non-standardfile has no missing-value attributes.
 use no_miss_att.nc
 sh att a
-     attributes for dataset: ./no_miss_att.nc
+     attributes for dataset: ./data/no_miss_att.nc
  A.min_value = 1
  A.max_value = 3
  A.long_name = {1,2,3} 
@@ -97547,7 +97167,7 @@ go err700_coords
  
 use err700_coords.nc
 list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
-             DATA SET: ./err700_coords.nc
+             DATA SET: ./data/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)
@@ -97592,9 +97212,9 @@ save/clob/file=a.nc c
  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
+ pseudo  X        M:235 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:240 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE C        M:228 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
  
 set mode /last diag
  
@@ -97847,7 +97467,7 @@ variables:
 		VAR:long_name = "X[GX=XLON]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 go bn_reset
@@ -97906,7 +97526,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97953,7 +97573,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97972,7 +97592,7 @@ sh axis `var,return=xaxis`
 use coads_climatology
 sh att (`sst,return=xaxis`)
  !-> sh att (COADSX)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (COADSX).units = degrees_east 
  (COADSX).modulo =   
  (COADSX).point_spacing = even 
@@ -98054,6 +97674,7 @@ FRAME /FILE=forecast_actual.gif
 ! 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
@@ -98063,6 +97684,7 @@ SHOW GRID diagview
  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
@@ -98194,16 +97816,14 @@ frame/file=legend_1d_plots.gif
 ! legend labels are titles
 sh sym lab*
 LABX = "Temperature Avg (deg. C)"
-LAB1 = "DEPTH (m) : 0 to 4149"
+LAB1 = "January Taux"
 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
  
@@ -98300,20 +97920,20 @@ GO bn_delim_datetime
 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)
+    1> ./data/delim_datetime.csv  (default)
  name     title                             I         J         K         L
- INDEX    index                            1:8       ...       ...       ...
- EDTIM    edtim                            1:8       ...       ...       ...
+ INDEX    index                            1:5       ...       ...       ...
+ EDTIM    edtim                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
- UDTIM    udtim                            1:8       ...       ...       ...
+ UDTIM    udtim                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
- UDATE    udate                            1:8       ...       ...       ...
+ UDATE    udate                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
- EDATE    edate                            1:8       ...       ...       ...
+ EDATE    edate                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
 list index,edtim,udtim,udate,edate
-             DATA SET: ./delim_datetime.csv
+             DATA SET: ./data/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)
@@ -98393,7 +98013,7 @@ T0 = 1-JAN-1900
 columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
 sh dat
      currently SET data sets:
-    1> ./delim_datetime.csv
+    1> ./data/delim_datetime.csv
  name     title                             I         J         K         L
  INDEX    index                            1:5       ...       ...       ...
  EDTIM    edtim                            1:5       ...       ...       ...
@@ -98405,16 +98025,16 @@ sh dat
  EDATE    edate                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
-    2> ./delim_yyyy.csv  (default)
+    2> ./data/delim_yyyy.csv  (default)
  name     title                             I         J         K         L
- INDEX    index                            1:8       ...       ...       ...
- UDATE    udate                            1:8       ...       ...       ...
+ INDEX    index                            1:6       ...       ...       ...
+ UDATE    udate                            1:6       ...       ...       ...
        (Julian days since 1-Jan-1900)
- UDTIM    udtim                            1:8       ...       ...       ...
+ UDTIM    udtim                            1:6       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
 list/prec=10 index,udate,udtim
-             DATA SET: ./delim_yyyy.csv
+             DATA SET: ./data/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)
@@ -98510,7 +98130,7 @@ 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
+    5> ./v7jnls/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
@@ -99106,19 +98726,19 @@ save/clobber/file=a.nc abc
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
-	AX043 = 5 ;
+	AX042 = 5 ;
 variables:
-	double AX043(AX043) ;
-		AX043:point_spacing = "even" ;
-		AX043:axis = "X" ;
-	double abc(AX043) ;
+	double AX042(AX042) ;
+		AX042:point_spacing = "even" ;
+		AX042:axis = "X" ;
+	double abc(AX042) ;
 		abc:missing_value = -1.e+34 ;
 		abc:_FillValue = -1.e+34 ;
 		abc:long_name = "abc" ;
 		abc:history = "From abc.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99130,15 +98750,15 @@ sh dat
  name     title                             I         J         K         L
  abc      abc                              1:5       ...       ...       ...
  
-    2> ./bn_delimited_read_1.dat  (default)
+    2> ./data/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       ...       ...       ...
+ lab      lab                              1:6       ...       ...       ...
+ nothing  nothing                          1:6       ...       ...       ...
+ var      var                              1:6       ...       ...       ...
+ latitude latitude                         1:6       ...       ...       ...
        (Latitude)
  longitude
-          longitude                        1:7       ...       ...       ...
+          longitude                        1:6       ...       ...       ...
        (Longitude)
  
 sh dat/att
@@ -99152,7 +98772,7 @@ sh dat/att
  abc                   DOUBLE    long_name       CHAR        3    T       abc
                                  missing_value   DOUBLE      1    T       -1.E+34
   
-    2> ./bn_delimited_read_1.dat  (default)
+    2> ./data/bn_delimited_read_1.dat  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -99179,24 +98799,24 @@ sav/file=a.nc/clobber var,longitude,latitude
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
-	AX103 = 6 ;
+	AX108 = 6 ;
 variables:
-	double AX103(AX103) ;
-		AX103:point_spacing = "even" ;
-		AX103:axis = "X" ;
-	double var(AX103) ;
+	double AX108(AX108) ;
+		AX108:point_spacing = "even" ;
+		AX108:axis = "X" ;
+	double var(AX108) ;
 		var:missing_value = -1.e+34 ;
 		var:_FillValue = -1.e+34 ;
 		var:long_name = "var" ;
 		var:history = "From bn_delimited_read_1.dat" ;
-	double longitude(AX103) ;
+	double longitude(AX108) ;
 		longitude:missing_value = -1.e+34 ;
 		longitude:_FillValue = -1.e+34 ;
 		longitude:long_name = "longitude" ;
 		longitude:units = "degrees_east" ;
 		longitude:long_name_mod = "Longitude" ;
 		longitude:history = "From bn_delimited_read_1.dat" ;
-	double latitude(AX103) ;
+	double latitude(AX108) ;
 		latitude:missing_value = -1.e+34 ;
 		latitude:_FillValue = -1.e+34 ;
 		latitude:long_name = "latitude" ;
@@ -99205,7 +98825,7 @@ variables:
 		latitude:history = "From bn_delimited_read_1.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99223,9 +98843,9 @@ GO bn_spawn_fail
 !  8/2016 *acm*
  
 sp ls notafile.nowhere
-sp grep "this text is not in the file" bn_all.jnl
+sp grep "this text is not in the file" genjnls/bn_all.jnl
 sp rm nothing.dat
-sp grep modulus non_COARDS.cdl
+sp grep modulus data/non_COARDS.cdl
 sp cp nofile.dat not_either.dat
  
 GO bn_reset bn_ave_of_ave
@@ -99456,7 +99076,7 @@ cancel var/all
 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
+    5> ./v7jnls/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
@@ -99484,7 +99104,7 @@ show data 5.3
 cancel data/all
  
 ! Tests for Ensembles
-let files = SPAWN("ls -1 ens*.nc")
+let files = SPAWN("ls -1 data/ens*.nc")
 ensemble my_ens = files
 sh data/members my_ens
      currently SET data sets:
@@ -99493,14 +99113,14 @@ sh data/members my_ens
  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
+      5.1: data/ens1.nc
+      5.2: data/ens2.nc
+      5.3: data/ens3.nc
+      5.4: data/ens4.nc
  
 show data 5.3
      currently SET data sets:
-    3> ./ens3.nc
+    3> data/ens3.nc
  name     title                             I         J         K         L
  SST      SST_IN                           1:10      1:9       ...       1:12
  
@@ -99530,7 +99150,7 @@ stat sst[d=5.2]
              TIME: 01-JAN 00:45 to 31-DEC 06:34
              E:  N/A
              F:  N/A
-             DATA SET: ./ens2.nc
+             DATA SET: data/ens2.nc
  
  Total # of data points: 1080 (10*9*1*12*1*1)
  # flagged as bad  data: 289
@@ -99547,7 +99167,7 @@ ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
 ! not this is dataset 2
 show data 5.3
      currently SET data sets:
-    3> ./ens2.nc
+    3> ./data/ens2.nc
  name     title                             I         J         K         L
  SST      SST_IN                           1:10      1:9       ...       1:12
  
@@ -99914,14 +99534,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-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
+                                 bounds          CHAR        10   T       TAXIS_bnds
                                  orig_file_axname
                                                  CHAR        5    F       TAXIS
   
@@ -99983,15 +99603,15 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-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
+                                 bounds          CHAR        10   T       TAXIS_bnds
                                  orig_file_axname
                                                  CHAR        5    F       TAXIS
   
@@ -100054,15 +99674,15 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        35   T       FERRET V7.21 (beta/debug)  6-Sep-17
+ .                               history         CHAR        35   T       FERRET V7.23 (beta/debug) 29-Nov-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
+                                 bounds          CHAR        10   T       TAXIS_bnds
                                  orig_file_axname
                                                  CHAR        5    F       TAXIS
   
@@ -100471,7 +100091,7 @@ variables:
 		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -100609,10 +100229,10 @@ 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
+ canceling dset ./data/ocean_atlas_temp.cdf
+ canceling dset ./data/gt4d011.cdf
+ canceling dset ./data/levitus_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
  
 ! this line seems to be essential making the crash happen
 PPL TICS .125,.25,.125,.25 !reset tics to default
@@ -100635,7 +100255,7 @@ list a[i=2]
  getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  eval    A        C:  6 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
- attrib_val attr     M:237 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ attrib_val attr     M:221 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
@@ -100645,10 +100265,10 @@ list a[i=2]
 GO bn_reset
 cancel mode verify
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
- -DELETE A        M:238 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:224 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
+ -DELETE attr     M:221 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ canceling dset ./data/coads_climatology.cdf
 ooooooooooooooooooooooooooooooooooooooooooo
 GO err71_user_var_attrib
 ! err71_user_var_attrib.jnl
@@ -100878,7 +100498,7 @@ variables:
 		uave:history = "From 6dfile" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -100928,7 +100548,7 @@ variables:
 		uave:history = "From 6dfile" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -100975,7 +100595,7 @@ variables:
 		uave:history = "From 6dfile" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -101131,7 +100751,7 @@ variables:
 		BIN:history = "From shorttest.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -101321,8 +100941,8 @@ let a1 = a*one
 show grid a1
     GRID (G175)
  name       axis              # pts   start                end                 subset
- (AX125)   X                 1000 r   1                    1000                1000 pts
- (AX125)   Y                 1000 r   1                    1000                1000 pts
+ (AX102)   X                 1000 r   1                    1000                1000 pts
+ (AX102)   Y                 1000 r   1                    1000                1000 pts
  normal    Z
  tax       TIME              1000 r   01-JAN-0001 00:00    01-JAN-1000 06:10   full
 say `a*one,return=cal`
@@ -101347,7 +100967,7 @@ stat co_emac
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./co_emac.nc
+             DATA SET: ./data/co_emac.nc
  
  Total # of data points: 48 (12*4*1*1*1*1)
  # flagged as bad  data: 4
@@ -102113,6 +101733,9 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
 !     the changes in results from old Ferret (particularly on @var)
  
  
+! clean up
+set mem/siz=25.6  ! return to the default setting
+ 
 GO bn_reset bn_dynamic_gather
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -102155,8 +101778,8 @@ show data
      currently SET data sets:
     1> tmp/test_dyn_mem.nc  (default)
  name     title                             I         J         K         L
- v        X[G=GG]+Y[G=GG]+Z[G=GG]+T[G=GG]  1:1000    1:1000    1:2       1:10
- v1000    X[GX=X10]+Y[GY=Y100]+Z[GZ=Z4]+T  1:10      1:100     1:4       1:1000
+ V        X[G=GG]+Y[G=GG]+Z[G=GG]+T[G=GG]  1:1000    1:1000    1:2       1:10
+ V1000    X[GX=X10]+Y[GY=Y100]+Z[GZ=Z4]+T  1:10      1:100     1:4       1:1000
  
  
 ! excercise under the least strict memory management
@@ -102223,11 +101846,11 @@ show memory/all          ! in memory following the last chunk
     Peak demand: 6 megawords
     Current cache: 6 megawords
 all data in memory:
- V[D=test_dyn_mem]                 XYZ   mr:228 size:4000000
+ V[D=test_dyn_mem]                 XYZ   mr:208 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
+ V[D=test_dyn_mem]                 XYZ   mr:241 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
  
@@ -102308,15 +101931,15 @@ show memory/all        ! in memory following the last chunk
     Peak demand: 2.024 megawords
     Current cache: 2.024 megawords
 all data in memory:
- V[D=test_dyn_mem]                 XYZ   mr:237 size:2000000
+ V[D=test_dyn_mem]                 XYZ   mr:221 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:238 size:4000
+ V[D=test_dyn_mem]                 XZ    mr:224 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
+ V[D=test_dyn_mem]                 XZT   mr:241 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
  
@@ -102417,16 +102040,13 @@ 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
+        V              Y     AV4        98           2
     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
+    Peak demand: 980022 words
+    Current cache: 200024 words
 cancel memory/all
  
 ! **************************************************
@@ -102443,14 +102063,13 @@ stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
 show memory/diagnostic       ! split on T-Y
     Last gather
         Variable    Axis   Xform     Chunk    Repeated
-        V              T     SUM         1           1
-        V              Y     AV4       494          10
+        V              Y     AV4        49           1
     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
+    Peak demand: 980020 words
+    Current cache: 400022 words
 cancel memory/all
  
 ! **************************************************
@@ -102751,21 +102370,21 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 >     Peak demand: 4.184 megawords
 >     Current cache: 4.524 megawords
 68c68
-<  V[D=test_dyn_mem]                 XYZ   mr:224 size:4000000
+<  V[D=test_dyn_mem]                 XYZ   mr:204 size:4000000
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:208 size:2000000
+>  V[D=test_dyn_mem]                 XYZ   mr:188 size:2000000
 72,73c72,77
-<  V[D=test_dyn_mem]                 XYZ   mr:243 size:2000000
+<  V[D=test_dyn_mem]                 XYZ   mr:232 size:2000000
 <          1/0.5                 1/0.5                 1/0.5                10/9.5
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:224 size:360000
+>  V[D=test_dyn_mem]                 XYZ   mr:204 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
+>  V[D=test_dyn_mem]                 XYZT  mr:232 size:1800000
 >          1/0.5               911/910.5               1/0.5                 1/0.5
 75a80,83
->  V[D=test_dyn_mem]                 XYZ   mr:228 size:364000
+>  V[D=test_dyn_mem]                 XYZ   mr:208 size:364000
 >          1/0.5               820/819.5               1/0.5              ... /0.5
 >       1000/1001              910/910.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -102812,13 +102431,13 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 ---
 >     Peak demand: 2.016 megawords
 161,162c170,171
-<  V[D=test_dyn_mem]                 XZT   mr:243 size:20000
+<  V[D=test_dyn_mem]                 XZT   mr:232 size:20000
 <          1/0.5              1000/999.5               1/0.5                 1/0.5
 ---
->  V[D=test_dyn_mem]                 XZT   mr:208 size:8000
+>  V[D=test_dyn_mem]                 XZT   mr:188 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
+>  V[D=test_dyn_mem]                 XZT   mr:232 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
 >  
@@ -102852,119 +102471,119 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 ---
 >     Peak demand: 692002 words
 >     Current cache: 616002 words
-263c276
-<         V              Y     AV4       989          10
+262c275
+<         V              Y     AV4        98           2
 ---
->         V              Y     AV4       692          10
-265c278
-<         V              Y     AV4       989          10
+>         V              Y     AV4        69           2
+267,268c280,281
+<     Peak demand: 980022 words
+<     Current cache: 200024 words
 ---
->         V              Y     AV4       692          10
-270,271c283,284
-<     Peak demand: 989006 words
-<     Current cache: 11006 words
+>     Peak demand: 690022 words
+>     Current cache: 340024 words
+285c298
+<         V              Y     AV4        49           1
 ---
->     Peak demand: 692006 words
->     Current cache: 308006 words
-289c302
-<         V              Y     AV4       494          10
+>         V              Y     AV4        34           1
+287c300
+<     Free table slots: 497
 ---
->         V              Y     AV4       346          10
-294,295c307,308
-<     Peak demand: 988004 words
-<     Current cache: 24004 words
+>     Free table slots: 496
+290,291c303,304
+<     Peak demand: 980020 words
+<     Current cache: 400022 words
 ---
->     Peak demand: 692004 words
->     Current cache: 616004 words
-312c325
+>     Peak demand: 680020 words
+>     Current cache: 960022 words
+308c321
 <         V              Y     AV4        24           1
 ---
 >         V              Y     AV4        17           1
-314c327
+310c323
 <     Free table slots: 494
 ---
 >     Free table slots: 492
-317,318c330,331
+313,314c326,327
 <     Peak demand: 480962 words
 <     Current cache: 802562 words
 ---
 >     Peak demand: 340682 words
 >     Current cache: 962602 words
-360c373
+356c369
 <         V1000          Z                 3           1
 ---
 >         V1000          Z                 2           1
-365,366c378,379
+361,362c374,375
 <     Peak demand: 3.108 megawords
 <     Current cache: 1.096 megawords
 ---
 >     Peak demand: 2.12 megawords
 >     Current cache: 2.096 megawords
-381c394
+377c390
 <         V1000          Y                22           1
 ---
 >         V1000          Y                15           1
-386,387c399,400
+382,383c395,396
 <     Peak demand: 959680 words
 <     Current cache: 544320 words
 ---
 >     Peak demand: 669600 words
 >     Current cache: 460000 words
-406a420
+402a416
 >         V1000          Z                 2          99
-408c422
+404c418
 <     Free table slots: 496
 ---
 >     Free table slots: 493
-411,412c425,426
+407,408c421,422
 <     Peak demand: 89440 words
 <     Current cache: 88960 words
 ---
 >     Peak demand: 69200 words
 >     Current cache: 89440 words
-434c448
+430c444
 <         V              T     AVE         1           1
 ---
 >         V              Y     AVE        91           1
-436c450
+432c446
 <     Free table slots: 498
 ---
 >     Free table slots: 496
-439,440c453,454
+435,436c449,450
 <     Peak demand: 3 megawords
 <     Current cache: 3 megawords
 ---
 >     Peak demand: 2.092 megawords
 >     Current cache: 2.262 megawords
-457c471
+453c467
 <         A              Y     AVE        47           1
 ---
 >         A              Y     AVE        26           1
-459c473
+455c469
 <     Free table slots: 491
 ---
 >     Free table slots: 487
-462,463c476,477
+458,459c472,473
 <     Peak demand: 1.94 megawords
 <     Current cache: 2.884 megawords
 ---
 >     Peak demand: 1.52 megawords
 >     Current cache: 2.98 megawords
-476c490
+472c486
 <         D              Y     AVE        47           1
 ---
 >         D              Y     AVE        26           1
-478c492
+474c488
 <     Free table slots: 489
 ---
 >     Free table slots: 487
-481,482c495,496
+477,478c491,492
 <     Peak demand: 2.41 megawords
 <     Current cache: 2.84 megawords
 ---
 >     Peak demand: 1.78 megawords
 >     Current cache: 2.836 megawords
-514,517c528,531
+510,513c524,527
 <         A              T     AVE         1           1
 <         B              Y     AVE        71           1
 <         C              Y     AVE        47           1
@@ -102974,33 +102593,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 >         B              Y     AVE        59           1
 >         C              Y     AVE        42           1
 >         D              Y     AVE        26           1
-519c533
+515c529
 <     Free table slots: 487
 ---
 >     Free table slots: 484
-522,523c536,537
+518,519c532,533
 <     Peak demand: 2.845 megawords
 <     Current cache: 2.979 megawords
 ---
 >     Peak demand: 2.39 megawords
 >     Current cache: 2.918 megawords
-538,539c552,553
+534,535c548,549
 <         A              Y     AVE        47           1
 <         B              Y     AVE        23           1
 ---
 >         A              Y     AVE        26           1
 >         B              Y     AVE         9           1
-541c555
+537c551
 <     Free table slots: 491
 ---
 >     Free table slots: 481
-544,545c558,559
+540,541c554,555
 <     Peak demand: 2.46 megawords
 <     Current cache: 2.794 megawords
 ---
 >     Peak demand: 2.18 megawords
 >     Current cache: 2.922 megawords
-551c565
+547c561
 < ! excercise under the default memory management
 ---
 > ! excercise under pretty strict memory management
@@ -103039,93 +102658,93 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >     Peak demand: 2.384 megawords
 >     Current cache: 5.712 megawords
 68c68
-<  V[D=test_dyn_mem]                 XYZ   mr:224 size:4000000
+<  V[D=test_dyn_mem]                 XYZ   mr:204 size:4000000
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:241 size:2000000
+>  V[D=test_dyn_mem]                 XYZ   mr:229 size:2000000
 72,73c72,77
-<  V[D=test_dyn_mem]                 XYZ   mr:243 size:2000000
+<  V[D=test_dyn_mem]                 XYZ   mr:232 size:2000000
 <          1/0.5                 1/0.5                 1/0.5                10/9.5
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:226 size:32000
+>  V[D=test_dyn_mem]                 XYZ   mr:205 size:32000
 >          1/0.5               993/992.5               1/0.5              ... /0.5
 >       1000/1001             1000/1000.5              2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:178 size:160000
+>  V[D=test_dyn_mem]                 XYZT  mr:157 size:160000
 >          1/0.5               993/992.5               1/0.5                 1/0.5
 75a80,155
->  V[D=test_dyn_mem]                 XYZ   mr:176 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:151 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:194 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:175 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:186 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:170 size:64000
 >          1/0.5               961/960.5               1/0.5              ... /0.5
 >       1000/1001              976/976.5               2/2.5              ... /10.5
 >                                                               AVE
->  V[D=test_dyn_mem]                 XYZT  mr:208 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:188 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:202 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:185 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:224 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:204 size:320000
 >          1/0.5               945/944.5               1/0.5                 1/0.5
 >       1000/1001              960/960.5               2/2.5                10/10.5
 >  
->  V[D=test_dyn_mem]                 XYZ   mr:218 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:198 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:234 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:215 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:228 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:208 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:238 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:224 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:237 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:221 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
+>  V[D=test_dyn_mem]                 XYZT  mr:232 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:240 size:64000
+>  V[D=test_dyn_mem]                 XYZ   mr:228 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
+>  V[D=test_dyn_mem]                 XYZT  mr:245 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
+>  V[D=test_dyn_mem]                 XYZ   mr:235 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
+>  V[D=test_dyn_mem]                 XYZT  mr:246 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
+>  V[D=test_dyn_mem]                 XYZ   mr:247 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:216 size:320000
+>  V[D=test_dyn_mem]                 XYZT  mr:197 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
+>  V[D=test_dyn_mem]                 XYZ   mr:227 size:64000
 >          1/0.5               833/832.5               1/0.5              ... /0.5
 >       1000/1001              848/848.5               2/2.5              ... /10.5
 >                                                               AVE
@@ -103172,33 +102791,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 ---
 >     Peak demand: 2.008 megawords
 153c234
-<  V[D=test_dyn_mem]                 XYZ   mr:228 size:2000000
+<  V[D=test_dyn_mem]                 XYZ   mr:208 size:2000000
 ---
->  V[D=test_dyn_mem]                 XYZ   mr:247 size:2000000
+>  V[D=test_dyn_mem]                 XYZ   mr:245 size:2000000
 157c238
-<  V[D=test_dyn_mem]                 XZ    mr:238 size:4000
+<  V[D=test_dyn_mem]                 XZ    mr:224 size:4000
 ---
->  V[D=test_dyn_mem]                 XZ    mr:248 size:4000
+>  V[D=test_dyn_mem]                 XZ    mr:246 size:4000
 161,162c242,243
-<  V[D=test_dyn_mem]                 XZT   mr:243 size:20000
+<  V[D=test_dyn_mem]                 XZT   mr:232 size:20000
 <          1/0.5              1000/999.5               1/0.5                 1/0.5
 ---
->  V[D=test_dyn_mem]                 XZT   mr:241 size:4000
+>  V[D=test_dyn_mem]                 XZT   mr:229 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
+>  V[D=test_dyn_mem]                 XZT   mr:232 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
+>  V[D=test_dyn_mem]                 XZT   mr:235 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
+>  V[D=test_dyn_mem]                 XZT   mr:236 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
+>  V[D=test_dyn_mem]                 XZT   mr:247 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
 >  
@@ -103244,151 +102863,147 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 ---
 >     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
+262c359
+<         V              Y     AV4        98           2
 ---
->         V              Y     AV4       395          10
-267c364
+>         V              Y     AV4        39           2
+264c361
 <     Free table slots: 496
 ---
 >     Free table slots: 495
-270,271c367,368
-<     Peak demand: 989006 words
-<     Current cache: 11006 words
+267,268c364,365
+<     Peak demand: 980022 words
+<     Current cache: 200024 words
 ---
->     Peak demand: 395006 words
->     Current cache: 605006 words
-289c386
-<         V              Y     AV4       494          10
+>     Peak demand: 390022 words
+>     Current cache: 640024 words
+285c382
+<         V              Y     AV4        49           1
 ---
->         V              Y     AV4       197          10
-291c388
+>         V              Y     AV4        19           1
+287c384
 <     Free table slots: 497
 ---
->     Free table slots: 495
-294,295c391,392
-<     Peak demand: 988004 words
-<     Current cache: 24004 words
+>     Free table slots: 496
+290,291c387,388
+<     Peak demand: 980020 words
+<     Current cache: 400022 words
 ---
->     Peak demand: 394004 words
->     Current cache: 818004 words
-312c409
+>     Peak demand: 380020 words
+>     Current cache: 620022 words
+308c405
 <         V              Y     AV4        24           1
 ---
 >         V              Y     AV4         9           1
-314c411
+310c407
 <     Free table slots: 494
 ---
 >     Free table slots: 486
-317,318c414,415
+313,314c410,411
 <     Peak demand: 480962 words
 <     Current cache: 802562 words
 ---
 >     Peak demand: 180362 words
 >     Current cache: 922202 words
-339c436,438
+335c432,434
 <     No split/gather occurred in the last evaluation
 ---
 >     Last gather
 >         Variable    Axis   Xform     Chunk    Repeated
 >         V1000          Z                 3           1
-341c440
+337c436
 <     Free table slots: 498
 ---
 >     Free table slots: 495
-344,345c443,444
+340,341c439,440
 <     Peak demand: 4.144 megawords
 <     Current cache: 4.048 megawords
 ---
 >     Peak demand: 3.108 megawords
 >     Current cache: 4.096 megawords
-360c459
+356c455
 <         V1000          Z                 3           1
 ---
 >         V1000          Z                 1           1
-362c461
+358c457
 <     Free table slots: 496
 ---
 >     Free table slots: 492
-365,366c464,465
+361,362c460,461
 <     Peak demand: 3.108 megawords
 <     Current cache: 1.096 megawords
 ---
 >     Peak demand: 1.084 megawords
 >     Current cache: 3.096 megawords
-381c480
+377c476
 <         V1000          Y                22           1
 ---
 >         V1000          Y                 8           1
-383c482
+379c478
 <     Free table slots: 496
 ---
 >     Free table slots: 492
-386,387c485,486
+382,383c481,482
 <     Peak demand: 959680 words
 <     Current cache: 544320 words
 ---
 >     Peak demand: 379520 words
 >     Current cache: 861440 words
-406a506
+402a502
 >         V1000          Z                 3         100
-408c508
+404c504
 <     Free table slots: 496
 ---
 >     Free table slots: 488
-411,412c511,512
+407,408c507,508
 <     Peak demand: 89440 words
 <     Current cache: 88960 words
 ---
 >     Peak demand: 58840 words
 >     Current cache: 89560 words
-434c534
+430c530
 <         V              T     AVE         1           1
 ---
 >         V              Y     AVE        16           1
-436c536
+432c532
 <     Free table slots: 498
 ---
 >     Free table slots: 478
-439,440c539,540
+435,436c535,536
 <     Peak demand: 3 megawords
 <     Current cache: 3 megawords
 ---
 >     Peak demand: 1.192 megawords
 >     Current cache: 2.856 megawords
-457c557
+453c553
 <         A              Y     AVE        47           1
 ---
 >         A              Y     AVE         4           1
-459c559
+455c555
 <     Free table slots: 491
 ---
 >     Free table slots: 431
-462,463c562,563
+458,459c558,559
 <     Peak demand: 1.94 megawords
 <     Current cache: 2.884 megawords
 ---
 >     Peak demand: 1.08 megawords
 >     Current cache: 2.984 megawords
-476c576
+472c572
 <         D              Y     AVE        47           1
 ---
 >         D              Y     AVE         4           1
-478c578
+474c574
 <     Free table slots: 489
 ---
 >     Free table slots: 442
-481,482c581,582
+477,478c577,578
 <     Peak demand: 2.41 megawords
 <     Current cache: 2.84 megawords
 ---
 >     Peak demand: 1.12 megawords
 >     Current cache: 2.992 megawords
-514,517c614,617
+510,513c610,613
 <         A              T     AVE         1           1
 <         B              Y     AVE        71           1
 <         C              Y     AVE        47           1
@@ -103398,33 +103013,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >         B              Y     AVE        23           1
 >         C              Y     AVE        14           1
 >         D              Y     AVE         4           1
-519c619
+515c615
 <     Free table slots: 487
 ---
 >     Free table slots: 439
-522,523c622,623
+518,519c618,619
 <     Peak demand: 2.845 megawords
 <     Current cache: 2.979 megawords
 ---
 >     Peak demand: 2.06 megawords
 >     Current cache: 2.996 megawords
-538,539c638,639
+534,535c634,635
 <         A              Y     AVE        47           1
 <         B              Y     AVE        23           1
 ---
 >         A              Y     AVE         4           1
 >         B              Y     AVE         9           1
-541c641
+537c637
 <     Free table slots: 491
 ---
 >     Free table slots: 481
-544,545c644,645
+540,541c640,641
 <     Peak demand: 2.46 megawords
 <     Current cache: 2.794 megawords
 ---
 >     Peak demand: 2.18 megawords
 >     Current cache: 2.922 megawords
-551d650
+547d646
 < ! excercise under the default memory management
  
  
@@ -103434,6 +103049,9 @@ SET MODE FRUGAL:95
 SET MODE/LAST IGNORE
  
  
+! clean up
+set mem/siz=25.6  ! return to the default setting
+ 
 GO bn_reset bn_stat_precision
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -104018,7 +103636,7 @@ GO bn_cache_management
 ! 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
+ !-> DEFINE SYMBOL saved_memory_size = 25.6
  
 SET MEMORY/SIZE=20
 CANCEL MEMORY/ALL
@@ -104428,7 +104046,7 @@ spawn cat test_auto_cache.out
  
 ! clean up
 SET MEMORY/SIZE=($saved_memory_size)
- !-> SET MEMORY/SIZE=3
+ !-> SET MEMORY/SIZE=25.6
  
 GO bn_reset bn_transp_choose
 cancel mode verify
@@ -105095,9 +104713,10 @@ list b2d[gf=aline_edges at iin]
  
 ! *********** v7.21 Additions ***********
  
-GO bn_reset
+GO bn_reset bn721_bug_fixes
 cancel mode verify
 ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn721_bug_fixes
 GO bn721_bug_fixes
 ! bn721_bug_fixes.jnl
 ! test various fixes that went into version 7.21
@@ -105160,7 +104779,7 @@ list sst.dimnames[i=2:3]
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (X)
  2   / 2:"COADSY"
- 3   / 3:"TIME10"
+ 3   / 3:"TIME20"
  
 let dnames = sst.dimnames
 list dnames[i=2]
@@ -105241,6 +104860,867 @@ list yvar[j=@sum]
           0.0000
  
  
+! *********** v7.22 Additions ***********
+ 
+GO bn_reset bn722_bug_fixes
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn722_bug_fixes
+GO bn722_bug_fixes
+! bn721_bug_fixes.jnl
+! test various fixes that went into version 7.22
+! 9/17 *acm*
+!
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dynamic_gather
+! err72_dynamic_gather.jnl
+! 9/25/2017 Ticket 2561
+! Combination of two transforms, and
+ 
+cancel data/all
+cancel memory
+ 
+! dataset from bn_dynamic_gather.jnl
+use tmp/test_dyn_mem.nc
+ 
+! w/ default amount of memory this doesn't need a split-gather
+! This result is correct
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+          2236000.
+show memory/diag
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 4.008 megawords
+    Current cache: 4.008002 megawords
+ 
+! Now use smaller memory, so it'll split/gather in the T
+! direction. The answer in v7.2 was wrong.
+cancel memory
+set mem/siz=10
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+          2236000.
+show memory/diag
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          T     AV4       997           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 10 megawords
+    Peak demand: 3.995976 megawords
+    Current cache: 4.012002 megawords
+ 
+! With an even smaller amount of memory, a different
+! incorrect result was listed with v7.2.
+cancel memory
+set mem/siz=1
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@SUM]
+          2236000.
+sh mem/diag
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          T     AV4        98           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 396784 words
+    Current cache: 870514 words
+ 
+set mem/siz=25.6  ! return to the default setting
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_polymark_log
+ 
+! err721_polymark_log.jnl
+! Ticket 2562, polymark and other polygons over log axis.
+! 9/26/17 ACM
+ 
+let frqs = {0.01,0.011,0.012,0.013,0.014,0.015,0.025,0.026,0.027,0.028,\
+0.029,0.03,0.031,0.032,0.033,0.08,0.108,0.135,0.193,0.194,0.195,0.196,\
+0.197,0.227,0.228,0.229,0.255,0.256,0.31,0.311,0.312,0.362,0.363,0.364}
+ 
+let phas = {61.099,68.796,79.686,80.292, 104.212, 121.192,93.757,\
+102.549,115.240,112.831,103.433,102.032,105.109,104.216,93.173,-7.041,\
+-133.985,-162.018,161.157,154.128,146.717,140.252,132.944,-29.014,\
+-34.848,-38.376,-109.836,-119.620,12.858,17.047,22.327,-167.776,-169.991,-165.467}
+ 
+! Plots with /HLOG
+set v ul
+plot/hlog/vs/vlim=-180:180:45/nolabs/hlim=0.001:0.1 frqs,phas
+go polymark poly/hlog/over/nolabs/nokey/line/pal=red frqs, phas 1 square 0.6
+ 
+ 
+! more dynamic range
+set v ur
+let frq2 = XCAT(frqs, 10*frqs)
+let phas2 = XCAT(phas,phas)
+plot/hlog/vs/vlim=-180:180:45/nolabs frq2, phas2
+go polymark poly/hlog/over/nolabs/nokey/line/pal=green frq2, phas2 1 delta 0.8
+ 
+ 
+! more decades still
+set v ll
+let var3 = XCAT(0.1*frqs, frq2)
+let phas3 = XCAT(phas,phas2)
+plot/hlog/vs/vlim=-180:180:45/nolabs var3, phas3
+go polymark poly/hlog/over/nolabs/nokey/line/pal=purple_light var3, phas3 1 star 1.1
+ 
+ 
+! /VLOG
+set v lr
+plot/vlog/vs/hlim=-180:180:45/nolabs phas3, var3
+go polymark poly/vlog/over/nolabs/nokey/line/pal=blue_light phas3, var3 1 circle 0.7
+ 
+ 
+! Note /VLOG/HLOG together make a blank plot. Not worrying about that now.
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_letd_with_grave
+! err721_letd_with_grave
+! 10/6/17 ACM
+! See ticket 2563. Error parsing the grave-accent expr
+! because of the quotes around datset path and name.
+ 
+use "data/proleptic_gregorian.nc"
+ 
+! This is fine
+let/d="data/proleptic_gregorian.nc" var1 = my_data + 1
+ 
+! This resulted in an error
+let/d="data/proleptic_gregorian.nc" var2 = my_data - `my_data[L=@ave]`
+ !-> DEFINE VARIABLE/d="data/proleptic_gregorian.nc" var2 = my_data - 0.0133574854990002
+show data
+     currently SET data sets:
+    1> data/proleptic_gregorian.nc  (default)
+ name     title                             I         J         K         L
+ MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
+ ------------------------------
+ var2[D=proleptic_gregorian] = MY_DATA - 0.0133574854990002
+ var1[D=proleptic_gregorian] = MY_DATA + 1
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_color_levels
+! err721_color_levels
+! 10/11/2017 ACM
+! Ticket 2564, setting up color palette and levels for the second
+! plot caused a STOP in PyFerret or in Ferret the gks error message
+!    gsetcolourrep()   96 Colour is outside range [0,1]
+ 
+ 
+let fcn = 0.5*COS(J[j=1:100]/30)+SIN(K[k=1:100]/20)
+fill/pal=land_sea_values/lev=vc 7000*fcn
+ 
+fill/pal=ocean_temp_bounds/lev=(-2,35,2) 18.5*fcn
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dup_labels
+! err721_dup_labels.jnl
+! ticket 2565
+! 10/13/17 ACM
+ 
+set mode logo
+use err721_dup_labels.nc
+ 
+! Draw time plot
+plot new_val
+ppl list labels
+ @ACRESHAPE(V,XTMS)                                                             
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  1.120E+01  5.100E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.23
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2  1.120E+01  5.000E+00 0.060    0  SYSTEM  @ASNOAA/PMEL TMAP
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 3  1.120E+01  4.900E+00 0.060    0  SYSTEM  @AS29-NOV-2017 17:37:59
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 4  1.120E+01  4.530E+00 0.120    0  SYSTEM  @ASDATA SET: err721_dup_labels
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB 5  5.600E+00  4.230E+00 0.120    0  SYSTEM  @A
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ 
+! Overlay plots should add only the new labels needed. Ferret has
+! always redrawn them all, which was harmless. Now, only draw the
+! ones needed for each new /overlay
+ 
+plot/over/vs/line/color=green/title="deployment mean"  {284.375, 285.5}, {3472.8, 3472.8}
+ppl list labels
+                                                                                
+ @AS{284.375, 285.5}                                                            
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASdeployment mean
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+plot/over/vs/line/color=red/title="HC mean"  {284.375, 285.5}, {3472.9, 3472.9}
+ppl list labels
+                                                                                
+ @AS{284.375, 285.5}                                                            
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.700E-01 -7.300E-01 0.080    0  SYSTEM  @ASHC mean
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+plot/over/vs/line/color=purple/nolab {284.42, 284.42}, {3472.6, 3473.1}
+ 
+! This caused labels below the plot way over to the right by the line
+plot/over/vs/line/color=purple/title="purple" {285.4, 285.4}, {3472.6, 3473.1}
+ppl list labels
+                                                                                
+ @AS{285.4, 285.4}                                                              
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.700E-01 -9.100E-01 0.080    0  SYSTEM  @ASpurple
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+set mode/last logo
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_plotuv
+! err721_plotuv.jnl
+! Ticket 2566: text size of zero causes graphics library errors
+!
+ 
+if ($program_name"0|PyFerret>1|*>0") then set text/font=arial
+ !-> if 0 then set text/font=arial
+ 
+! In PyFerret with -nodisplay a Cairo error on the zero-length
+! text size caused an ERROR and exit. Without -nodisplay it
+! issued errors and used some nominal size
+ 
+use coads_climatology
+let uwnd = sst
+let vwnd = -1*sst
+ 
+plot/set/x=180/y=0 uwnd,vwnd
+ppl axlsze,0,0
+ ppl plotuv 0,1
+ 
+if ($program_name"0|PyFerret>1|*>0") then cancel text
+ !-> if 0 then cancel text
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_ascii_size
+! err721_ascii_size.jnl
+! ACM 10/25/2017  Ticket 2567
+! Initializing an EZ dataset mis-counts the size until data is loaded
+ 
+file/var="t1,t2"/skip=1 err721_ascii_size.dat
+show data
+     currently SET data sets:
+    1> ./data/err721_ascii_size.dat  (default)
+ name     title                             I         J         K         L
+ t1       t1                               1:3       ...       ...       ...
+ t2       t2                               1:3       ...       ...       ...
+ 
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+load t1
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dot_grid
+! err721_dot_grid
+ 
+!!!! using dot_t(v1,v2) works fine
+ 
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot_t(v1,v2)
+ 
+show grid dp
+    GRID (G190)
+ name       axis              # pts   start                end                 subset
+ xaxis     X                    3 r   1                    3                   full
+ normal    Y
+ normal    Z
+ normal    T
+ 
+list dp
+             VARIABLE : DOT_T(V1,V2)
+             SUBSET   : 3 points (X)
+ 1   / 1:  0.0368
+ 2   / 2:  0.1471
+ 3   / 3:  0.3310
+ 
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+ 
+!!!! using dot(v1,v2,4) gives the correct results
+ 
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot(v1,v2,4)
+ 
+! It would be nice if this showed the right grid with NO t axis.
+show grid dp
+    GRID XTGRID
+ name       axis              # pts   start                end                 subset
+ xaxis     X                    3 r   1                    3                   full
+ normal    Y
+ normal    Z
+ taxis_dc  T                  240 r   0                    59.75               full
+list dp
+             VARIABLE : DOT(V1,V2,4)
+             SUBSET   : 3 points (X)
+ 1   / 1:  0.0368
+ 2   / 2:  0.1471
+ 3   / 3:  0.3310
+ 
+! but, at least cancel axis taxis_dc is ok
+! Previously the "can axis taxis_dc" failed.
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_stride_size
+! err721_stride_size.jnl
+! SHOW DATA and RETURN=isize were
+! not updated with new size on a SET AXIS/STRIDE
+! *ACM* 11/29/2017 github issue 1843
+ 
+use coads_climatology
+set axis/stride=5 `sst,return=xaxis`
+ !-> set axis/stride=5 COADSX
+ 
+! Should show new size for x axis
+show grid sst
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ (AX125)   LONGITUDE           36mr   21E                  11E(371)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+ 
+! Restore axis, back to size 180
+cancel axis/stride `sst,return=xaxis`
+ !-> cancel axis/stride (AX125)
+show grid sst
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME20    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 180
+180
+ 
+! Irregular axis
+ 
+USE truemonth.nc
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 239
+239
+SET AXIS/STRIDE=12/OFFSET=0 `var,return=taxis`  ! every January
+ !-> SET AXIS/STRIDE=12/OFFSET=0 TRUEMONTH3
+LIST var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 20 points (TIME)
+ 16-JAN-1950 /  1:  0.8459
+ 16-JAN-1951 /  2: -0.4792
+ 16-JAN-1952 /  3: -0.0086
+ 16-JAN-1953 /  4:  0.5030
+ 16-JAN-1954 /  5: -0.8601
+ 16-JAN-1955 /  6:  0.9996
+ 16-JAN-1956 /  7: -0.8863
+ 16-JAN-1957 /  8:  0.5404
+ 16-JAN-1958 /  9: -0.0625
+ 16-JAN-1959 / 10: -0.4313
+ 16-JAN-1960 / 11:  0.8159
+ 16-JAN-1961 / 12: -0.9952
+ 16-JAN-1962 / 13:  0.9170
+ 16-JAN-1963 / 14: -0.6068
+ 16-JAN-1964 / 15:  0.1432
+ 16-JAN-1965 / 16:  0.3660
+ 16-JAN-1966 / 17: -0.7727
+ 16-JAN-1967 / 18:  0.9840
+ 16-JAN-1968 / 19: -0.9463
+ 16-JAN-1969 / 20:  0.6618
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 20
+20
+ 
+can axis/stride `var,return=taxis`
+ !-> can axis/stride (AX102)
+sh grid var
+    GRID GRZ1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TRUEMONTH3 TIME              239 i   16-JAN-1950 12:00    16-NOV-1969 00:00   full
+SET AXIS/STRIDE=12/OFFSET=2 `var,return=taxis`  ! every March
+ !-> SET AXIS/STRIDE=12/OFFSET=2 TRUEMONTH3
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+list var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 20 points (TIME)
+ 16-MAR-1950 /  1:  0.4061
+ 16-MAR-1951 /  2:  0.0901
+ 16-MAR-1952 /  3: -0.5718
+ 16-MAR-1953 /  4:  0.8988
+ 16-MAR-1954 /  5: -0.9985
+ 16-MAR-1955 /  6:  0.8456
+ 16-MAR-1956 /  7: -0.4700
+ 16-MAR-1957 /  8: -0.0191
+ 16-MAR-1958 /  9:  0.5034
+ 16-MAR-1959 / 10: -0.8603
+ 16-MAR-1960 / 11:  0.9999
+ 16-MAR-1961 / 12: -0.8814
+ 16-MAR-1962 / 13:  0.5400
+ 16-MAR-1963 / 14: -0.0620
+ 16-MAR-1964 / 15: -0.4407
+ 16-MAR-1965 / 16:  0.8219
+ 16-MAR-1966 / 17: -0.9952
+ 16-MAR-1967 / 18:  0.9168
+ 16-MAR-1968 / 19: -0.5985
+ 16-MAR-1969 / 20:  0.1328
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+ 
+ 
+GO bn_reset bn_tseries_modulo
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tseries_modulo
+GO bn_tseries_modulo
+! bn_tseries_modulo.jnl
+!  9/2017 TSERIES aggregations
+!
+! If a time axis lies within year 0 or year 1 they are seen by ferret
+! as modulo. For a tseries aggregation, if the entire aggregated axis
+! is still modulo, then mark it as such, but otherwise it is not modulo.
+!
+! The time axes for these files both lie within year 0.
+! The aggregation has a modulo time axis.
+ 
+tseries heat_0a.nc, heat_0b.nc
+show grid total_ocean_sens_heat
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ scalar_axis LONGITUDE          1 r   0E                   0E                  full
+ normal    Y
+ normal    Z
+ TIME28    TIME                 7mi   16-JAN 12:00         16-NOV 00:00        full
+ 
+! The file heat_01 lies in year 1 so the total TSERIES length is longer than a year.
+ 
+can dat/all
+tseries heat_0a.nc, heat_0b.nc, heat_01.nc
+show grid total_ocean_sens_heat
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ scalar_axis LONGITUDE          1 r   0E                   0E                  full
+ normal    Y
+ normal    Z
+ TIME28    TIME                19 i   16-JAN-0000 12:00    16-DEC-0002 12:00   full
+ 
+! Here is the example reported by Russ Fiedler, 9/5/17, on the Ferret list.
+! A file in year 1 and a file in year 2 were previously made into a 24-month
+! axis which was marked as modulo.
+ 
+can dat/all
+tseries heat_00.nc, heat_01.nc
+show grid total_ocean_sens_heat
+    GRID GAT1
+ name       axis              # pts   start                end                 subset
+ scalar_axis LONGITUDE          1 r   0E                   0E                  full
+ normal    Y
+ normal    Z
+ TIME28    TIME                24 i   16-JAN-0001 12:00    16-DEC-0002 12:00   full
+ 
+ 
+! What happens with files that are members of our descriptor examples?
+! (coads_clim.003 needed changing to have the same time-axis name)
+ 
+tseries coads_clim_irreg = coads_clim.001, coads_clim.003
+show grid sst
+    GRID GMU1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME29    TIME                 4mi   16-JAN 06:00         16-JUN 10:25        full
+list/x=180/y=0 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_clim_irreg
+             SUBSET   : 4 points (TIME)
+             LONGITUDE: 179E
+             LATITUDE : 1S
+                   179E   
+                    80
+ 16-JAN      / 1:  28.20
+ 15-FEB      / 2:  28.36
+ 16-MAY      / 3:  28.49
+ 16-JUN      / 4:  28.32
+ 
+! This descriptor file lists the same datasets, which each contain two
+! timesteps, but it lists S_START = S_END on the second set so it reads
+! just one timestep from coads_clim.003
+ 
+! The descriptor-file code does not mark the axis as modulo.
+! (Not changing this at this time.)
+ 
+can data/all
+use coads_clim_irreg.des
+show grid sst
+    GRID GJR5
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME28    TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56   full
+list/x=180/y=0 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             DATA SET : COAD
+             FILENAME : coads_clim_irreg.des
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 179E
+             LATITUDE : 1S
+                   179E   
+                    80
+ 16-JAN-1900 / 1:  28.20
+ 15-FEB-1900 / 2:  28.36
+ 17-MAY-1900 / 3:  28.49
+ 
+GO bn_reset bn_huge_axis
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_huge_axis
+GO bn_huge_axis
+! bn_huge_axis
+! 9/14/17  Dynamic coordinate storage
+! Defining extra-long coordinate axes, and save to a file
+! Use a dataset with extra-long coordinate axis.
+ 
+! Previously this would have given a program-limit-reached error
+let yy = if y[j=1:900000] eq 10 then 10.1 else  y[j=1:900000]
+define axis/y longyax = yy
+ 
+let/bad=0 var = y[gy=longyax]
+ 
+list/j=5:15 var
+             VARIABLE : Y[GY=LONGYAX]
+             SUBSET   : 11 points (Y)
+ 5     /  5:   5.00
+ 6     /  6:   6.00
+ 7     /  7:   7.00
+ 8     /  8:   8.00
+ 9     /  9:   9.00
+ 10.1  / 10:  10.10
+ 11    / 11:  11.00
+ 12    / 12:  12.00
+ 13    / 13:  13.00
+ 14    / 14:  14.00
+ 15    / 15:  15.00
+save/clobber/file=a.nc/outtype=int var
+ 
+! Previously issued a limit-on-storage-for-coordinates error
+can var/all
+can axis longyax
+ 
+use a
+show dat
+     currently SET data sets:
+    1> ./a.nc  (default)
+ name     title                             I         J         K         L
+ var      Y[GY=LONGYAX]                    ...       1:900000  ...       ...
+ 
+list/j=5:15 var
+             VARIABLE : Y[GY=LONGYAX]
+             FILENAME : a.nc
+             SUBSET   : 11 points (Y)
+ 5     /  5:   5.00
+ 6     /  6:   6.00
+ 7     /  7:   7.00
+ 8     /  8:   8.00
+ 9     /  9:   9.00
+ 10.1  / 10:  10.00
+ 11    / 11:  11.00
+ 12    / 12:  12.00
+ 13    / 13:  13.00
+ 14    / 14:  14.00
+ 15    / 15:  15.00
+list/j=899995:9000000 var
+             VARIABLE : Y[GY=LONGYAX]
+             FILENAME : a.nc
+             SUBSET   : 6 points (Y)
+ 899995   / 899995:  899995.
+ 899996   / 899996:  899996.
+ 899997   / 899997:  899997.
+ 899998   / 899998:  899998.
+ 899999   / 899999:  899999.
+ 900000   / 900000:  900000.
+ 
+! clean up. Remove our huge file
+cancel data/all
+sp rm a.nc
+ 
+GO bn_reset bn_save_as_global
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_as_global
+GO bn_save_as_global
+! bn_save_asglobal
+! 11/2017
+! Simple command to save a variable as a global attribute.
+! Works on an existing or a new file.
+ 
+! Write to a new file.  Gets the default global attributes.
+ 
+can mode upcase
+let my_extra_attribute = "Extra attribute: This file is just attributes to start with"
+save/asglobal/clobber/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+
+// global attributes:
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: This file is just attributes to start with" ;
+}
+ 
+! Or write new attributes to a file that has data
+ 
+use coads_climatology
+save/clobber/file=a.nc sst[x=150:170,y=0:10]
+let my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes"
+save/asglobal/append/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+}
+ 
+! Create an attribute from a file variable
+ 
+use maize_1
+save/append/file=a.nc/j=4/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+		:MAIZE_YIELD = 0.05408529f, 0.1875f, -0.04314715f, 9.96921e+36f ;
+}
+ 
+! A second write of the same attribute overwrites the attribute values
+! (append here is saying dont start a new file)
+ 
+save/append/file=a.nc/j=5/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+		:MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+}
+ 
+! Allow for various /OUTTYPE as in any SAVE command
+let another = {1, 2, 3.1}
+save/append/file=a.nc/outtype=INT/asglobal another
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+		:MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+		:another = 1, 2, 3 ;
+}
+ 
+ 
+! Intentional errors
+set mode ignore
+set data 1
+ 
+! String attributes may only be single-valued
+let multistring = {"a", "b", "c", "", "e"}
+save/asglobal/append/file=a.nc multistring
+ 
+! Refuse to write multi-dimensioned attributes y-t
+save/append/asglobal/x=150/outtype=float/file=a.nc sst
+ 
+! Also arbitrarily refuse to write more than a list of 100 values.
+set mode ignore
+save/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+ 
+set mode /last upcase
+ 
 !  *********** Always do a bn_reset  ***********
 !  *********** make sure things clean up well **
 GO bn_reset
@@ -105255,9 +105735,9 @@ yes? ! run bn_all_ef tests
 yes? 
 yes? GO bn_all_ef
  	NOAA/PMEL TMAP
- 	FERRET v7.21 (beta/debug)
- 	Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 	 6-Sep-17 13:02     
+ 	FERRET v7.23 (beta/debug)
+ 	Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 	29-Nov-17 17:38     
 
 SET MODE VERIFY
 ! bn_all_ef.jnl
@@ -106075,7 +106555,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106100,7 +106580,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106124,7 +106604,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106163,7 +106643,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106198,7 +106678,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106239,7 +106719,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106296,7 +106776,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106353,7 +106833,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106408,7 +106888,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106456,7 +106936,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106517,7 +106997,7 @@ dimensions:
 	COADSX81_81 = 1 ;
 	bnds = 2 ;
 	COADSY46_46 = 1 ;
-	TIME4 = UNLIMITED ; // (3 currently)
+	TIME7 = UNLIMITED ; // (3 currently)
 variables:
 	double COADSX81_81(COADSX81_81) ;
 		COADSX81_81:units = "degrees_east" ;
@@ -106534,15 +107014,15 @@ variables:
 		COADSY46_46:standard_name = "latitude" ;
 		COADSY46_46:bounds = "COADSY46_46_bnds" ;
 	double COADSY46_46_bnds(COADSY46_46, bnds) ;
-	double TIME4(TIME4) ;
-		TIME4:units = "hour since 0000-01-01 00:00:00" ;
-		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME4:modulo = " " ;
-		TIME4:axis = "T" ;
-		TIME4:standard_name = "time" ;
-		TIME4:bounds = "TIME4_bnds" ;
-	double TIME4_bnds(TIME4, bnds) ;
-	float SST(TIME4, COADSY46_46, COADSX81_81) ;
+	double TIME7(TIME7) ;
+		TIME7:units = "hour since 0000-01-01 00:00:00" ;
+		TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME7:modulo = " " ;
+		TIME7:axis = "T" ;
+		TIME7:standard_name = "time" ;
+		TIME7:bounds = "TIME7_bnds" ;
+	double TIME7_bnds(TIME7, bnds) ;
+	float SST(TIME7, COADSY46_46, COADSX81_81) ;
 		SST:missing_value = -1.e+34f ;
 		SST:_FillValue = -1.e+34f ;
 		SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -106550,7 +107030,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106564,9 +107044,9 @@ data:
  COADSY46_46_bnds =
   0, 2 ;
 
- TIME4 = 366, 1096.485, 1826.97 ;
+ TIME7 = 366, 1096.485, 1826.97 ;
 
- TIME4_bnds =
+ TIME7_bnds =
   0.757499999999993, 731.2425,
   731.2425, 1461.7275,
   1461.7275, 2192.2125 ;
@@ -106583,8 +107063,8 @@ dimensions:
 	COADSX81_81edges = 2 ;
 	COADSY46_46 = 1 ;
 	COADSY46_46edges = 2 ;
-	TIME4 = UNLIMITED ; // (3 currently)
-	TIME4edges = 4 ;
+	TIME7 = UNLIMITED ; // (3 currently)
+	TIME7edges = 4 ;
 variables:
 	double COADSX81_81(COADSX81_81) ;
 		COADSX81_81:units = "degrees_east" ;
@@ -106603,16 +107083,16 @@ variables:
 		COADSY46_46:edges = "COADSY46_46edges" ;
 	double COADSY46_46edges(COADSY46_46edges) ;
 		COADSY46_46edges:edges = " " ;
-	double TIME4(TIME4) ;
-		TIME4:units = "hour since 0000-01-01 00:00:00" ;
-		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME4:modulo = " " ;
-		TIME4:axis = "T" ;
-		TIME4:standard_name = "time" ;
-		TIME4:edges = "TIME4edges" ;
-	double TIME4edges(TIME4edges) ;
-		TIME4edges:edges = " " ;
-	float SST(TIME4, COADSY46_46, COADSX81_81) ;
+	double TIME7(TIME7) ;
+		TIME7:units = "hour since 0000-01-01 00:00:00" ;
+		TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME7:modulo = " " ;
+		TIME7:axis = "T" ;
+		TIME7:standard_name = "time" ;
+		TIME7:edges = "TIME7edges" ;
+	double TIME7edges(TIME7edges) ;
+		TIME7edges:edges = " " ;
+	float SST(TIME7, COADSY46_46, COADSX81_81) ;
 		SST:missing_value = -1.e+34f ;
 		SST:_FillValue = -1.e+34f ;
 		SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -106620,7 +107100,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106632,9 +107112,9 @@ data:
 
  COADSY46_46edges = 0, 2 ;
 
- TIME4 = 366, 1096.485, 1826.97 ;
+ TIME7 = 366, 1096.485, 1826.97 ;
 
- TIME4edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
+ TIME7edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
 
  SST =
   28.28389,
@@ -106671,7 +107151,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106746,7 +107226,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106773,7 +107253,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -106797,7 +107277,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-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:
@@ -106824,11 +107304,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -106859,7 +107339,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106931,7 +107411,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106947,7 +107427,7 @@ netcdf a {
 dimensions:
 	COADSX105_105 = 1 ;
 	COADSY45_45 = 1 ;
-	TIME4 = UNLIMITED ; // (3 currently)
+	TIME7 = UNLIMITED ; // (3 currently)
 variables:
 	double COADSX105_105(COADSX105_105) ;
 		COADSX105_105:units = "degrees_east" ;
@@ -106961,13 +107441,13 @@ variables:
 		COADSY45_45:point_spacing = "even" ;
 		COADSY45_45:axis = "Y" ;
 		COADSY45_45:standard_name = "latitude" ;
-	double TIME4(TIME4) ;
-		TIME4:units = "hour since 0000-01-01 00:00:00" ;
-		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME4:modulo = " " ;
-		TIME4:axis = "T" ;
-		TIME4:standard_name = "time" ;
-	float SST(TIME4, COADSY45_45, COADSX105_105) ;
+	double TIME7(TIME7) ;
+		TIME7:units = "hour since 0000-01-01 00:00:00" ;
+		TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME7:modulo = " " ;
+		TIME7:axis = "T" ;
+		TIME7:standard_name = "time" ;
+	float SST(TIME7, COADSY45_45, COADSX105_105) ;
 		SST:missing_value = -1.e+34f ;
 		SST:_FillValue = -1.e+34f ;
 		SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -106975,7 +107455,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -106983,14 +107463,14 @@ data:
 
  COADSY45_45 = -1 ;
 
- TIME4 = 366, 1096.485, 1826.97 ;
+ TIME7 = 366, 1096.485, 1826.97 ;
 }
 bn_attributes.jnl --- 3 modulo set to false
 netcdf a {
 dimensions:
 	COADSX81_81 = 1 ;
 	COADSY45_45 = 1 ;
-	TIME7 = UNLIMITED ; // (12 currently)
+	TIME12 = UNLIMITED ; // (12 currently)
 variables:
 	double COADSX81_81(COADSX81_81) ;
 		COADSX81_81:units = "degrees_east" ;
@@ -107003,13 +107483,13 @@ variables:
 		COADSY45_45:point_spacing = "even" ;
 		COADSY45_45:axis = "Y" ;
 		COADSY45_45:standard_name = "latitude" ;
-	double TIME7(TIME7) ;
-		TIME7:units = "hour since 0000-01-01 00:00:00" ;
-		TIME7:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME7:modulo = " " ;
-		TIME7:axis = "T" ;
-		TIME7:standard_name = "time" ;
-	float SST(TIME7, COADSY45_45, COADSX81_81) ;
+	double TIME12(TIME12) ;
+		TIME12:units = "hour since 0000-01-01 00:00:00" ;
+		TIME12:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME12:modulo = " " ;
+		TIME12:axis = "T" ;
+		TIME12:standard_name = "time" ;
+	float SST(TIME12, COADSY45_45, COADSX81_81) ;
 		SST:missing_value = -1.e+34f ;
 		SST:_FillValue = -1.e+34f ;
 		SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -107017,7 +107497,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107025,7 +107505,7 @@ data:
 
  COADSY45_45 = -1 ;
 
- TIME7 = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91, 
+ TIME12 = 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:
@@ -107125,7 +107605,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -107166,7 +107646,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -107189,7 +107669,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107215,7 +107695,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107235,7 +107715,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107256,7 +107736,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107268,7 +107748,7 @@ dimensions:
 	XAX_LEV9421_380 = 360 ;
 	YAX_LEV94 = 180 ;
 	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (2 currently)
+	TIME4 = UNLIMITED ; // (2 currently)
 variables:
 	double XAX_LEV9421_380(XAX_LEV9421_380) ;
 		XAX_LEV9421_380:units = "degrees_east" ;
@@ -107285,13 +107765,13 @@ variables:
 		ZAXLEVIT191_1:point_spacing = "even" ;
 		ZAXLEVIT191_1:axis = "Z" ;
 		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+	double TIME4(TIME4) ;
+		TIME4:units = "hour since 0000-01-01 00:00:00" ;
+		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME4:modulo = " " ;
+		TIME4:axis = "T" ;
+		TIME4:standard_name = "time" ;
+	float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "Temperature" ;
@@ -107299,7 +107779,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -107308,7 +107788,7 @@ dimensions:
 	XAX_LEV9421_380281_340 = 60 ;
 	YAX_LEV94121_135 = 15 ;
 	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (2 currently)
+	TIME4 = UNLIMITED ; // (2 currently)
 variables:
 	double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
 		XAX_LEV9421_380281_340:units = "degrees_east" ;
@@ -107325,13 +107805,13 @@ variables:
 		ZAXLEVIT191_1:point_spacing = "even" ;
 		ZAXLEVIT191_1:axis = "Z" ;
 		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
+	double TIME4(TIME4) ;
+		TIME4:units = "hour since 0000-01-01 00:00:00" ;
+		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME4:modulo = " " ;
+		TIME4:axis = "T" ;
+		TIME4:standard_name = "time" ;
+	float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "Temperature" ;
@@ -107339,7 +107819,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -107348,7 +107828,7 @@ dimensions:
 	XAX_LEV9421_380 = 360 ;
 	YAX_LEV94 = 180 ;
 	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (2 currently)
+	TIME4 = UNLIMITED ; // (2 currently)
 variables:
 	double XAX_LEV9421_380(XAX_LEV9421_380) ;
 		XAX_LEV9421_380:units = "degrees_east" ;
@@ -107365,19 +107845,19 @@ variables:
 		ZAXLEVIT191_1:point_spacing = "even" ;
 		ZAXLEVIT191_1:axis = "Z" ;
 		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+	double TIME4(TIME4) ;
+		TIME4:units = "hour since 0000-01-01 00:00:00" ;
+		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME4:modulo = " " ;
+		TIME4:axis = "T" ;
+		TIME4:standard_name = "time" ;
+	float TEMP(TIME4, 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 V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -107406,7 +107886,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107439,7 +107919,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107465,7 +107945,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107511,7 +107991,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -107553,7 +108033,7 @@ dimensions:
 	PSXT100_100 = 1 ;
 	PSYT135_56 = 22 ;
 	PSZT11_1 = 1 ;
-	TIME11 = 25 ;
+	TIME12 = 25 ;
 variables:
 	double XC(XC) ;
 		XC:long_name = "Longitude" ;
@@ -107604,13 +108084,13 @@ variables:
 		PSZT11_1:standard_name = "depth" ;
 		PSZT11_1:bounds = "PSZT11_1_bnds" ;
 	double PSZT11_1_bnds(PSZT11_1, bnds) ;
-	double TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:point_spacing = "even" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT100_100) ;
+	double TIME12(TIME12) ;
+		TIME12:units = "hour since 1980-01-14 14:00:00" ;
+		TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME12:point_spacing = "even" ;
+		TIME12:axis = "T" ;
+		TIME12:standard_name = "time" ;
+	float TEMP(TIME12, PSZT11_1, PSYT135_56, PSXT100_100) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -107618,7 +108098,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -107660,7 +108140,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107690,7 +108170,7 @@ data:
     -32767, -32767, -32767, -32767, -32767, -32767 ;
 }
 bn_attributes.jnl --- 20 set data type on output int4
-	int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
+	int TEMP(TIME12, PSZT11_1, PSYT148_48, PSXT91_108) ;
 		TEMP:missing_value = -1000 ;
 		TEMP:_FillValue = -1000 ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -107703,7 +108183,7 @@ bn_attributes.jnl --- 20 set data type on output int4
   26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 26, 26, 26, 26, 26, 25, 25, 25 ;
 }
 bn_attributes.jnl --- 21 set data type on output double
-	double SALT(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
+	double SALT(TIME12, PSZT11_1, PSYT148_48, PSXT91_108) ;
 		SALT:missing_value = 0.00999999977648258 ;
 		SALT:_FillValue = 0.00999999977648258 ;
 		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -107743,7 +108223,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107780,7 +108260,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107820,7 +108300,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107871,7 +108351,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -107895,7 +108375,7 @@ dimensions:
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
-	TIME11 = UNLIMITED ; // (1 currently)
+	TIME12 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
 		PSXT91_108:units = "degrees" ;
@@ -107918,19 +108398,19 @@ variables:
 		PSZT11_10:standard_name = "depth" ;
 		PSZT11_10:bounds = "PSZT11_10_bnds" ;
 	double PSZT11_10_bnds(PSZT11_10, bnds) ;
-	double TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+	double TIME12(TIME12) ;
+		TIME12:units = "hour since 1980-01-14 14:00:00" ;
+		TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME12:axis = "T" ;
+		TIME12:standard_name = "time" ;
+	double T2(TIME12, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		T2:missing_value = -1.e+34 ;
 		T2:_FillValue = -1.e+34 ;
 		T2:long_name = "T*TEMP" ;
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107939,7 +108419,7 @@ dimensions:
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
-	TIME11 = UNLIMITED ; // (1 currently)
+	TIME12 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
 		PSXT91_108:units = "degrees" ;
@@ -107963,19 +108443,19 @@ variables:
 		PSZT11_10:standard_name = "depth" ;
 		PSZT11_10:bounds = "PSZT11_10_bnds" ;
 	double PSZT11_10_bnds(PSZT11_10, bnds) ;
-	double TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+	double TIME12(TIME12) ;
+		TIME12:units = "hour since 1980-01-14 14:00:00" ;
+		TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME12:axis = "T" ;
+		TIME12:standard_name = "time" ;
+	double T2(TIME12, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		T2:missing_value = -1.e+34 ;
 		T2:_FillValue = -1.e+34 ;
 		T2:long_name = "T*TEMP" ;
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -107984,7 +108464,7 @@ dimensions:
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
-	TIME11 = UNLIMITED ; // (1 currently)
+	TIME12 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
 		PSXT91_108:units = "meters" ;
@@ -108006,19 +108486,19 @@ variables:
 		PSZT11_10:standard_name = "depth" ;
 		PSZT11_10:bounds = "PSZT11_10_bnds" ;
 	double PSZT11_10_bnds(PSZT11_10, bnds) ;
-	double TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+	double TIME12(TIME12) ;
+		TIME12:units = "hour since 1980-01-14 14:00:00" ;
+		TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME12:axis = "T" ;
+		TIME12:standard_name = "time" ;
+	double T2(TIME12, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		T2:missing_value = -1.e+34 ;
 		T2:_FillValue = -1.e+34 ;
 		T2:long_name = "T*TEMP" ;
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108053,7 +108533,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108087,7 +108567,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -108117,7 +108597,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -108146,7 +108626,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -108171,7 +108651,7 @@ dimensions:
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
-	TIME11 = UNLIMITED ; // (25 currently)
+	TIME13 = UNLIMITED ; // (25 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
 		PSXT91_108:units = "degrees_east" ;
@@ -108194,12 +108674,12 @@ variables:
 		PSZT11_10:standard_name = "depth" ;
 		PSZT11_10:bounds = "PSZT11_10_bnds" ;
 	double PSZT11_10_bnds(PSZT11_10, bnds) ;
-	double TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+	double TIME13(TIME13) ;
+		TIME13:units = "hour since 1980-01-14 14:00:00" ;
+		TIME13:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME13:axis = "T" ;
+		TIME13:standard_name = "time" ;
+	double FAREN(TIME13, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		FAREN:missing_value = -1.e+34 ;
 		FAREN:_FillValue = -1.e+34 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -108207,7 +108687,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108216,7 +108696,7 @@ dimensions:
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
-	TIME11 = UNLIMITED ; // (25 currently)
+	TIME13 = UNLIMITED ; // (25 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
 		PSXT91_108:units = "degrees_east" ;
@@ -108239,12 +108719,12 @@ variables:
 		PSZT11_10:standard_name = "depth" ;
 		PSZT11_10:bounds = "PSZT11_10_bnds" ;
 	double PSZT11_10_bnds(PSZT11_10, bnds) ;
-	double TIME11(TIME11) ;
-		TIME11:units = "hour since 1980-01-14 14:00:00" ;
-		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
-		TIME11:axis = "T" ;
-		TIME11:standard_name = "time" ;
-	int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+	double TIME13(TIME13) ;
+		TIME13:units = "hour since 1980-01-14 14:00:00" ;
+		TIME13:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME13:axis = "T" ;
+		TIME13:standard_name = "time" ;
+	int FAREN(TIME13, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		FAREN:missing_value = -999 ;
 		FAREN:_FillValue = -999 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -108252,7 +108732,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108271,7 +108751,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108301,7 +108781,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108331,7 +108811,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108350,7 +108830,7 @@ dimensions:
 	XAX_LEV9421_380 = 360 ;
 	YAX_LEV9450_50 = 1 ;
 	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (1 currently)
+	TIME4 = UNLIMITED ; // (1 currently)
 variables:
 	double XAX_LEV9421_380(XAX_LEV9421_380) ;
 		XAX_LEV9421_380:units = "degrees_east" ;
@@ -108370,13 +108850,13 @@ variables:
 		ZAXLEVIT191_1:point_spacing = "even" ;
 		ZAXLEVIT191_1:axis = "Z" ;
 		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
+	double TIME4(TIME4) ;
+		TIME4:units = "hour since 0000-01-01 00:00:00" ;
+		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME4:modulo = " " ;
+		TIME4:axis = "T" ;
+		TIME4:standard_name = "time" ;
+	float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "Temperature" ;
@@ -108384,7 +108864,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108392,7 +108872,7 @@ dimensions:
 	XAX_LEV9421_3801_12 = 12 ;
 	YAX_LEV9450_50 = 1 ;
 	ZAXLEVIT191_1 = 1 ;
-	TIME3 = UNLIMITED ; // (1 currently)
+	TIME4 = UNLIMITED ; // (1 currently)
 variables:
 	double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
 		XAX_LEV9421_3801_12:units = "degrees_east" ;
@@ -108412,13 +108892,13 @@ variables:
 		ZAXLEVIT191_1:point_spacing = "even" ;
 		ZAXLEVIT191_1:axis = "Z" ;
 		ZAXLEVIT191_1:standard_name = "depth" ;
-	double TIME3(TIME3) ;
-		TIME3:units = "hour since 0000-01-01 00:00:00" ;
-		TIME3:time_origin = "01-JAN-0000 00:00:00" ;
-		TIME3:modulo = " " ;
-		TIME3:axis = "T" ;
-		TIME3:standard_name = "time" ;
-	float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
+	double TIME4(TIME4) ;
+		TIME4:units = "hour since 0000-01-01 00:00:00" ;
+		TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME4:modulo = " " ;
+		TIME4:axis = "T" ;
+		TIME4:standard_name = "time" ;
+	float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "Temperature" ;
@@ -108426,7 +108906,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108444,7 +108924,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -108463,7 +108943,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108481,7 +108961,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -108498,7 +108978,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108519,7 +108999,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.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108582,7 +109062,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -108609,7 +109089,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -108636,7 +109116,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -108702,7 +109182,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -108734,7 +109214,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -108767,12 +109247,12 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	TIME17 = 8 ;
+	TIME28 = 8 ;
 	REFTIME = 3 ;
 	bnds = 2 ;
 variables:
@@ -108784,7 +109264,7 @@ variables:
 		REFTIME:axis = "F" ;
 		REFTIME:bounds = "REFTIME_bnds" ;
 	double REFTIME_bnds(REFTIME, bnds) ;
-	double TIME(REFTIME, TIME17) ;
+	double TIME(REFTIME, TIME28) ;
 		TIME:units = "calendar Month since 2014-11-01T00:00:00Z" ;
 		TIME:long_name = "GRIB forecast or observation time" ;
 		TIME:calendar = "proleptic_gregorian" ;
@@ -108792,7 +109272,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108830,7 +109310,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -108856,7 +109336,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -108870,7 +109350,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21 (beta/debug)  6-Sep-17" ;
+		:history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
 		:Conventions = "CF-1.6" ;
 }
 -----
@@ -108884,9 +109364,9 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v7.21 (beta/debug)
- 	Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 	 6-Sep-17 13:02     
+ 	FERRET v7.23 (beta/debug)
+ 	Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 	29-Nov-17 17:38     
 
 CAN MODE VERIFY
     SET MEMORY/SIZE: 31 megawords
@@ -108895,25 +109375,25 @@ CAN MODE VERIFY
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "13:02"
-SESSION_PID = "40729"
-DELTA_CPU = "0.06199"
-CLOCK_SECS = "0.177"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "13:02:15"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:38"
+SESSION_PID = "48263"
+DELTA_CPU = "0.062989"
+CLOCK_SECS = "0.261"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:38:01"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
 SPAWN_OK = "1"
 SPAWN_STATUS = "0"
-GO_FILE = "./bn_startupfile.jnl"
-LAST_GO_FILE = "./bn_startupfile.jnl"
+GO_FILE = "./genjnls/bn_startupfile.jnl"
+LAST_GO_FILE = "./genjnls/bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "startup_tests.plt"
 PPL$TEKNME = "/dev/tt"
@@ -108932,7 +109412,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "6-Sep-17:13:02"
+WIN_TITLE = "29-Nov-17:17:38"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -108977,7 +109457,7 @@ VP_YHI = "1"
       6D_LAB           SET
       FRUGAL           SET              30
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  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
@@ -108996,9 +109476,9 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v7.21 (beta/debug)
- 	Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 	 6-Sep-17 13:02     
+ 	FERRET v7.23 (beta/debug)
+ 	Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 	29-Nov-17 17:38     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
@@ -109699,9 +110179,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v7.21 (beta/debug)
- 	Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 	 6-Sep-17 13:02     
+ 	FERRET v7.23 (beta/debug)
+ 	Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 	29-Nov-17 17:38     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -109813,9 +110293,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v7.21 (beta/debug)
- 	Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 	 6-Sep-17 13:02     
+ 	FERRET v7.23 (beta/debug)
+ 	Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 	29-Nov-17 17:38     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -109899,4 +110379,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Wed Sep 6 13:02:20 PDT 2017
+Ended at Wed Nov 29 17:38:06 PST 2017
diff --git a/bench/bench_environment b/bench/bench_environment
deleted file mode 100755
index 334dc01..0000000
--- a/bench/bench_environment
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/csh -ls
-# 
-#  simple script to restrict the ferret environment when running
-#  benchmark suite.  
-#
-#  *kob* 1/01
-
-setenv FER_DATA .
-setenv FER_DESCR .
-setenv FER_DSETS .
-setenv FER_DAT .
-setenv FER_GRIDS .
-setenv FER_DIR .
-
diff --git a/bench/bench_environment.csh b/bench/bench_environment.csh
new file mode 100644
index 0000000..cebc957
--- /dev/null
+++ b/bench/bench_environment.csh
@@ -0,0 +1,10 @@
+# simple csh script to restrict the ferret environment when running benchmark tests
+# must be sourced using 'source' into the current shell - do not make executable
+
+setenv FER_GO ". ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls $FER_GO"
+setenv FER_DATA ". ./data"
+setenv FER_DESCR ". ./data"
+setenv FER_DSETS ". ./data"
+setenv FER_GRIDS ". ./data"
+setenv FER_DIR "."
+
diff --git a/bench/bench_environment.sh b/bench/bench_environment.sh
new file mode 100644
index 0000000..abbd712
--- /dev/null
+++ b/bench/bench_environment.sh
@@ -0,0 +1,10 @@
+# simple sh script to restrict the ferret environment when running benchmark tests
+# must be sourced using '.' into the current shell - do not make executable
+
+export FER_GO=". ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls $FER_GO"
+export FER_DATA=". ./data"
+export FER_DESCR=". ./data"
+export FER_DSETS=". ./data"
+export FER_GRIDS=". ./data"
+export FER_DIR="."
+
diff --git a/bench/bn_modulo_attribute.jnl b/bench/bn_modulo_attribute.jnl
deleted file mode 100644
index ed8d022..0000000
--- a/bench/bn_modulo_attribute.jnl
+++ /dev/null
@@ -1,11 +0,0 @@
-! Ferret V5.50 m
-
-! Modulo attribute can take numerical values to indicate 
-! the modulo length of axis (subspan modulo changes)
-! This script tests various string values of the attribute             
-
-use modulo_lon_time
-
-sh ax lon*
-sh ax tim*
-
diff --git a/bench/coads_clim.003 b/bench/coads_clim.003
deleted file mode 100644
index 5eef5ef..0000000
Binary files a/bench/coads_clim.003 and /dev/null differ
diff --git a/bench/123456789000101_100101_test_numeric.nc b/bench/data/123456789000101_100101_test_numeric.nc
similarity index 100%
rename from bench/123456789000101_100101_test_numeric.nc
rename to bench/data/123456789000101_100101_test_numeric.nc
diff --git a/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc b/bench/data/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
similarity index 100%
rename from bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
rename to bench/data/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
diff --git a/bench/492C19881104.nc b/bench/data/492C19881104.nc
similarity index 100%
rename from bench/492C19881104.nc
rename to bench/data/492C19881104.nc
diff --git a/bench/6dfile.nc b/bench/data/6dfile.nc
similarity index 100%
rename from bench/6dfile.nc
rename to bench/data/6dfile.nc
diff --git a/bench/EZ.DAT b/bench/data/EZ.DAT
similarity index 100%
rename from bench/EZ.DAT
rename to bench/data/EZ.DAT
diff --git a/bench/TAO_SST_clim.cdf b/bench/data/TAO_SST_clim.cdf
similarity index 100%
rename from bench/TAO_SST_clim.cdf
rename to bench/data/TAO_SST_clim.cdf
diff --git a/bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc b/bench/data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
similarity index 100%
rename from bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
rename to bench/data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
diff --git a/bench/a1478.nc b/bench/data/a1478.nc
similarity index 100%
rename from bench/a1478.nc
rename to bench/data/a1478.nc
diff --git a/bench/a_cartesian_bug1179.nc b/bench/data/a_cartesian_bug1179.nc
similarity index 100%
rename from bench/a_cartesian_bug1179.nc
rename to bench/data/a_cartesian_bug1179.nc
diff --git a/bench/adouble.nc b/bench/data/adouble.nc
similarity index 100%
rename from bench/adouble.nc
rename to bench/data/adouble.nc
diff --git a/bench/adouble_2D.nc b/bench/data/adouble_2D.nc
similarity index 100%
rename from bench/adouble_2D.nc
rename to bench/data/adouble_2D.nc
diff --git a/bench/aggT_5d1.nc b/bench/data/aggT_5d1.nc
similarity index 100%
rename from bench/aggT_5d1.nc
rename to bench/data/aggT_5d1.nc
diff --git a/bench/aggT_5d2.nc b/bench/data/aggT_5d2.nc
similarity index 100%
rename from bench/aggT_5d2.nc
rename to bench/data/aggT_5d2.nc
diff --git a/bench/anew_global.cdl b/bench/data/anew_global.cdl
similarity index 100%
rename from bench/anew_global.cdl
rename to bench/data/anew_global.cdl
diff --git a/bench/append_pack.nc b/bench/data/append_pack.nc
similarity index 100%
rename from bench/append_pack.nc
rename to bench/data/append_pack.nc
diff --git a/bench/axes_subspan.nc b/bench/data/axes_subspan.nc
similarity index 100%
rename from bench/axes_subspan.nc
rename to bench/data/axes_subspan.nc
diff --git a/bench/b1478.nc b/bench/data/b1478.nc
similarity index 100%
rename from bench/b1478.nc
rename to bench/data/b1478.nc
diff --git a/bench/bad_taxis.nc b/bench/data/bad_taxis.nc
similarity index 100%
rename from bench/bad_taxis.nc
rename to bench/data/bad_taxis.nc
diff --git a/bench/badbounds.nc b/bench/data/badbounds.nc
similarity index 100%
rename from bench/badbounds.nc
rename to bench/data/badbounds.nc
diff --git a/bench/badbounds_even.nc b/bench/data/badbounds_even.nc
similarity index 100%
rename from bench/badbounds_even.nc
rename to bench/data/badbounds_even.nc
diff --git a/bench/badbounds_non_enclose.nc b/bench/data/badbounds_non_enclose.nc
similarity index 100%
rename from bench/badbounds_non_enclose.nc
rename to bench/data/badbounds_non_enclose.nc
diff --git a/bench/badbounds_uneven.nc b/bench/data/badbounds_uneven.nc
similarity index 100%
rename from bench/badbounds_uneven.nc
rename to bench/data/badbounds_uneven.nc
diff --git a/bench/bn_delimited_read_1.dat b/bench/data/bn_delimited_read_1.dat
similarity index 100%
rename from bench/bn_delimited_read_1.dat
rename to bench/data/bn_delimited_read_1.dat
diff --git a/bench/bn_delimited_read_2.dat b/bench/data/bn_delimited_read_2.dat
similarity index 100%
rename from bench/bn_delimited_read_2.dat
rename to bench/data/bn_delimited_read_2.dat
diff --git a/bench/bn_delimited_read_CO2.dat b/bench/data/bn_delimited_read_CO2.dat
similarity index 100%
rename from bench/bn_delimited_read_CO2.dat
rename to bench/data/bn_delimited_read_CO2.dat
diff --git a/bench/bn_delimited_read_date_time.dat b/bench/data/bn_delimited_read_date_time.dat
similarity index 100%
rename from bench/bn_delimited_read_date_time.dat
rename to bench/data/bn_delimited_read_date_time.dat
diff --git a/bench/bn_set_axis_regular.nc b/bench/data/bn_set_axis_regular.nc
similarity index 100%
rename from bench/bn_set_axis_regular.nc
rename to bench/data/bn_set_axis_regular.nc
diff --git a/bench/bn_strides.cdf b/bench/data/bn_strides.cdf
similarity index 100%
rename from bench/bn_strides.cdf
rename to bench/data/bn_strides.cdf
diff --git a/bench/bn_strides.cdl b/bench/data/bn_strides.cdl
similarity index 100%
rename from bench/bn_strides.cdl
rename to bench/data/bn_strides.cdl
diff --git a/bench/bounds_noenclose.nc b/bench/data/bounds_noenclose.nc
similarity index 100%
rename from bench/bounds_noenclose.nc
rename to bench/data/bounds_noenclose.nc
diff --git a/bench/bounds_overlapping.nc b/bench/data/bounds_overlapping.nc
similarity index 100%
rename from bench/bounds_overlapping.nc
rename to bench/data/bounds_overlapping.nc
diff --git a/bench/bug1421_a.nc b/bench/data/bug1421_a.nc
similarity index 100%
rename from bench/bug1421_a.nc
rename to bench/data/bug1421_a.nc
diff --git a/bench/bug1421_b.nc b/bench/data/bug1421_b.nc
similarity index 100%
rename from bench/bug1421_b.nc
rename to bench/data/bug1421_b.nc
diff --git a/bench/bug1845.nc b/bench/data/bug1845.nc
similarity index 100%
rename from bench/bug1845.nc
rename to bench/data/bug1845.nc
diff --git a/bench/bug2445.nc b/bench/data/bug2445.nc
similarity index 100%
rename from bench/bug2445.nc
rename to bench/data/bug2445.nc
diff --git a/bench/bug_save_subset.nc b/bench/data/bug_save_subset.nc
similarity index 100%
rename from bench/bug_save_subset.nc
rename to bench/data/bug_save_subset.nc
diff --git a/bench/byte.dat b/bench/data/byte.dat
similarity index 100%
rename from bench/byte.dat
rename to bench/data/byte.dat
diff --git a/bench/byteSwapped.dat b/bench/data/byteSwapped.dat
similarity index 100%
rename from bench/byteSwapped.dat
rename to bench/data/byteSwapped.dat
diff --git a/bench/cc_irreg.nc b/bench/data/cc_irreg.nc
similarity index 100%
rename from bench/cc_irreg.nc
rename to bench/data/cc_irreg.nc
diff --git a/bench/clim_airt_lev.cdf b/bench/data/clim_airt_lev.cdf
similarity index 100%
rename from bench/clim_airt_lev.cdf
rename to bench/data/clim_airt_lev.cdf
diff --git a/bench/climatological_axes.cdf b/bench/data/climatological_axes.cdf
similarity index 100%
rename from bench/climatological_axes.cdf
rename to bench/data/climatological_axes.cdf
diff --git a/bench/co_emac.nc b/bench/data/co_emac.nc
similarity index 100%
rename from bench/co_emac.nc
rename to bench/data/co_emac.nc
diff --git a/bench/coads_clim.001 b/bench/data/coads_clim.001
similarity index 100%
rename from bench/coads_clim.001
rename to bench/data/coads_clim.001
diff --git a/bench/coads_clim.002 b/bench/data/coads_clim.002
similarity index 100%
rename from bench/coads_clim.002
rename to bench/data/coads_clim.002
diff --git a/bench/data/coads_clim.003 b/bench/data/coads_clim.003
new file mode 100644
index 0000000..5950d06
Binary files /dev/null and b/bench/data/coads_clim.003 differ
diff --git a/bench/coads_clim.003b b/bench/data/coads_clim.003b
similarity index 100%
rename from bench/coads_clim.003b
rename to bench/data/coads_clim.003b
diff --git a/bench/coads_clim.1000 b/bench/data/coads_clim.1000
similarity index 100%
rename from bench/coads_clim.1000
rename to bench/data/coads_clim.1000
diff --git a/bench/coads_clim.1001 b/bench/data/coads_clim.1001
similarity index 100%
rename from bench/coads_clim.1001
rename to bench/data/coads_clim.1001
diff --git a/bench/coads_clim.999 b/bench/data/coads_clim.999
similarity index 100%
rename from bench/coads_clim.999
rename to bench/data/coads_clim.999
diff --git a/bench/coads_clim.des b/bench/data/coads_clim.des
similarity index 100%
rename from bench/coads_clim.des
rename to bench/data/coads_clim.des
diff --git a/bench/coads_clim_4digit.des b/bench/data/coads_clim_4digit.des
similarity index 100%
rename from bench/coads_clim_4digit.des
rename to bench/data/coads_clim_4digit.des
diff --git a/bench/coads_clim_bad_delta.des b/bench/data/coads_clim_bad_delta.des
similarity index 100%
rename from bench/coads_clim_bad_delta.des
rename to bench/data/coads_clim_bad_delta.des
diff --git a/bench/coads_clim_irreg.des b/bench/data/coads_clim_irreg.des
similarity index 100%
rename from bench/coads_clim_irreg.des
rename to bench/data/coads_clim_irreg.des
diff --git a/bench/coads_clim_missing_step1.des b/bench/data/coads_clim_missing_step1.des
similarity index 100%
rename from bench/coads_clim_missing_step1.des
rename to bench/data/coads_clim_missing_step1.des
diff --git a/bench/coads_clim_missing_stepN.des b/bench/data/coads_clim_missing_stepN.des
similarity index 100%
rename from bench/coads_clim_missing_stepN.des
rename to bench/data/coads_clim_missing_stepN.des
diff --git a/bench/coads_clim_step_order.des b/bench/data/coads_clim_step_order.des
similarity index 100%
rename from bench/coads_clim_step_order.des
rename to bench/data/coads_clim_step_order.des
diff --git a/bench/coads_climatology.cdf b/bench/data/coads_climatology.cdf
similarity index 100%
rename from bench/coads_climatology.cdf
rename to bench/data/coads_climatology.cdf
diff --git a/bench/coads_slice.nc b/bench/data/coads_slice.nc
similarity index 100%
rename from bench/coads_slice.nc
rename to bench/data/coads_slice.nc
diff --git a/bench/coads_uw.nc b/bench/data/coads_uw.nc
similarity index 100%
rename from bench/coads_uw.nc
rename to bench/data/coads_uw.nc
diff --git a/bench/coads_vwnd.cdf b/bench/data/coads_vwnd.cdf
similarity index 100%
rename from bench/coads_vwnd.cdf
rename to bench/data/coads_vwnd.cdf
diff --git a/bench/conventions_history_in.nc b/bench/data/conventions_history_in.nc
similarity index 100%
rename from bench/conventions_history_in.nc
rename to bench/data/conventions_history_in.nc
diff --git a/bench/dates_bug.dat b/bench/data/dates_bug.dat
similarity index 100%
rename from bench/dates_bug.dat
rename to bench/data/dates_bug.dat
diff --git a/bench/degrees.nc b/bench/data/degrees.nc
similarity index 100%
rename from bench/degrees.nc
rename to bench/data/degrees.nc
diff --git a/bench/delim_datetime.csv b/bench/data/delim_datetime.csv
similarity index 100%
rename from bench/delim_datetime.csv
rename to bench/data/delim_datetime.csv
diff --git a/bench/delim_prec.dat b/bench/data/delim_prec.dat
similarity index 100%
rename from bench/delim_prec.dat
rename to bench/data/delim_prec.dat
diff --git a/bench/delim_yyyy.csv b/bench/data/delim_yyyy.csv
similarity index 100%
rename from bench/delim_yyyy.csv
rename to bench/data/delim_yyyy.csv
diff --git a/bench/des.mc b/bench/data/des.mc
similarity index 100%
rename from bench/des.mc
rename to bench/data/des.mc
diff --git a/bench/des.my_descriptor b/bench/data/des.my_descriptor
similarity index 100%
rename from bench/des.my_descriptor
rename to bench/data/des.my_descriptor
diff --git a/bench/dims_not_coord.nc b/bench/data/dims_not_coord.nc
similarity index 100%
rename from bench/dims_not_coord.nc
rename to bench/data/dims_not_coord.nc
diff --git a/bench/double.dat b/bench/data/double.dat
similarity index 100%
rename from bench/double.dat
rename to bench/data/double.dat
diff --git a/bench/doubleSwapped.dat b/bench/data/doubleSwapped.dat
similarity index 100%
rename from bench/doubleSwapped.dat
rename to bench/data/doubleSwapped.dat
diff --git a/bench/dsg.nc b/bench/data/dsg.nc
similarity index 100%
rename from bench/dsg.nc
rename to bench/data/dsg.nc
diff --git a/bench/dstitle.nc b/bench/data/dstitle.nc
similarity index 100%
rename from bench/dstitle.nc
rename to bench/data/dstitle.nc
diff --git a/bench/duplicate.cdf b/bench/data/duplicate.cdf
similarity index 100%
rename from bench/duplicate.cdf
rename to bench/data/duplicate.cdf
diff --git a/bench/duplicate.des b/bench/data/duplicate.des
similarity index 100%
rename from bench/duplicate.des
rename to bench/data/duplicate.des
diff --git a/bench/duplicate.nc b/bench/data/duplicate.nc
similarity index 100%
rename from bench/duplicate.nc
rename to bench/data/duplicate.nc
diff --git a/bench/edge.nc b/bench/data/edge.nc
similarity index 100%
rename from bench/edge.nc
rename to bench/data/edge.nc
diff --git a/bench/ens1.nc b/bench/data/ens1.nc
similarity index 100%
rename from bench/ens1.nc
rename to bench/data/ens1.nc
diff --git a/bench/ens2.nc b/bench/data/ens2.nc
similarity index 100%
rename from bench/ens2.nc
rename to bench/data/ens2.nc
diff --git a/bench/ens3.nc b/bench/data/ens3.nc
similarity index 100%
rename from bench/ens3.nc
rename to bench/data/ens3.nc
diff --git a/bench/ens4.nc b/bench/data/ens4.nc
similarity index 100%
rename from bench/ens4.nc
rename to bench/data/ens4.nc
diff --git a/bench/epic_formatted_file.nc b/bench/data/epic_formatted_file.nc
similarity index 100%
rename from bench/epic_formatted_file.nc
rename to bench/data/epic_formatted_file.nc
diff --git a/bench/err491_attval.cdf b/bench/data/err491_attval.cdf
similarity index 100%
rename from bench/err491_attval.cdf
rename to bench/data/err491_attval.cdf
diff --git a/bench/err542_poly_over_calendar.nc b/bench/data/err542_poly_over_calendar.nc
similarity index 100%
rename from bench/err542_poly_over_calendar.nc
rename to bench/data/err542_poly_over_calendar.nc
diff --git a/bench/err600_upcase.nc b/bench/data/err600_upcase.nc
similarity index 100%
rename from bench/err600_upcase.nc
rename to bench/data/err600_upcase.nc
diff --git a/bench/err608_bug1556.nc b/bench/data/err608_bug1556.nc
similarity index 100%
rename from bench/err608_bug1556.nc
rename to bench/data/err608_bug1556.nc
diff --git a/bench/err62_string_write.nc b/bench/data/err62_string_write.nc
similarity index 100%
rename from bench/err62_string_write.nc
rename to bench/data/err62_string_write.nc
diff --git a/bench/err64_packed_data.nc b/bench/data/err64_packed_data.nc
similarity index 100%
rename from bench/err64_packed_data.nc
rename to bench/data/err64_packed_data.nc
diff --git a/bench/err64_small_latlon.nc b/bench/data/err64_small_latlon.nc
similarity index 100%
rename from bench/err64_small_latlon.nc
rename to bench/data/err64_small_latlon.nc
diff --git a/bench/err67_axis_order.nc b/bench/data/err67_axis_order.nc
similarity index 100%
rename from bench/err67_axis_order.nc
rename to bench/data/err67_axis_order.nc
diff --git a/bench/err682_scale_no_offset.nc b/bench/data/err682_scale_no_offset.nc
similarity index 100%
rename from bench/err682_scale_no_offset.nc
rename to bench/data/err682_scale_no_offset.nc
diff --git a/bench/err684_packed_output.nc b/bench/data/err684_packed_output.nc
similarity index 100%
rename from bench/err684_packed_output.nc
rename to bench/data/err684_packed_output.nc
diff --git a/bench/err693_save_packed.nc b/bench/data/err693_save_packed.nc
similarity index 100%
rename from bench/err693_save_packed.nc
rename to bench/data/err693_save_packed.nc
diff --git a/bench/err700_coords.nc b/bench/data/err700_coords.nc
similarity index 100%
rename from bench/err700_coords.nc
rename to bench/data/err700_coords.nc
diff --git a/bench/err700_vs_data.nc b/bench/data/err700_vs_data.nc
similarity index 100%
rename from bench/err700_vs_data.nc
rename to bench/data/err700_vs_data.nc
diff --git a/bench/data/err721_ascii_size.dat b/bench/data/err721_ascii_size.dat
new file mode 100644
index 0000000..8fb6be0
--- /dev/null
+++ b/bench/data/err721_ascii_size.dat
@@ -0,0 +1,4 @@
+header
+1,   1
+2,   2
+3,   3
diff --git a/bench/data/err721_dup_labels.nc b/bench/data/err721_dup_labels.nc
new file mode 100644
index 0000000..4798df9
Binary files /dev/null and b/bench/data/err721_dup_labels.nc differ
diff --git a/bench/err_calendar.nc b/bench/data/err_calendar.nc
similarity index 100%
rename from bench/err_calendar.nc
rename to bench/data/err_calendar.nc
diff --git a/bench/euro_dates_bug.dat b/bench/data/euro_dates_bug.dat
similarity index 100%
rename from bench/euro_dates_bug.dat
rename to bench/data/euro_dates_bug.dat
diff --git a/bench/fill_value_int.nc b/bench/data/fill_value_int.nc
similarity index 100%
rename from bench/fill_value_int.nc
rename to bench/data/fill_value_int.nc
diff --git a/bench/finale.dat b/bench/data/finale.dat
similarity index 100%
rename from bench/finale.dat
rename to bench/data/finale.dat
diff --git a/bench/fine_x_axis.nc b/bench/data/fine_x_axis.nc
similarity index 100%
rename from bench/fine_x_axis.nc
rename to bench/data/fine_x_axis.nc
diff --git a/bench/float.dat b/bench/data/float.dat
similarity index 100%
rename from bench/float.dat
rename to bench/data/float.dat
diff --git a/bench/floatSwapped.dat b/bench/data/floatSwapped.dat
similarity index 100%
rename from bench/floatSwapped.dat
rename to bench/data/floatSwapped.dat
diff --git a/bench/forecast24.nc b/bench/data/forecast24.nc
similarity index 100%
rename from bench/forecast24.nc
rename to bench/data/forecast24.nc
diff --git a/bench/forecast25.nc b/bench/data/forecast25.nc
similarity index 100%
rename from bench/forecast25.nc
rename to bench/data/forecast25.nc
diff --git a/bench/forecast26.nc b/bench/data/forecast26.nc
similarity index 100%
rename from bench/forecast26.nc
rename to bench/data/forecast26.nc
diff --git a/bench/forecast27.nc b/bench/data/forecast27.nc
similarity index 100%
rename from bench/forecast27.nc
rename to bench/data/forecast27.nc
diff --git a/bench/ft_cal_mixed.nc b/bench/data/ft_cal_mixed.nc
similarity index 100%
rename from bench/ft_cal_mixed.nc
rename to bench/data/ft_cal_mixed.nc
diff --git a/bench/ft_cal_one.nc b/bench/data/ft_cal_one.nc
similarity index 100%
rename from bench/ft_cal_one.nc
rename to bench/data/ft_cal_one.nc
diff --git a/bench/fxdata.dat b/bench/data/fxdata.dat
similarity index 100%
rename from bench/fxdata.dat
rename to bench/data/fxdata.dat
diff --git a/bench/gappy_bounds.nc b/bench/data/gappy_bounds.nc
similarity index 100%
rename from bench/gappy_bounds.nc
rename to bench/data/gappy_bounds.nc
diff --git a/bench/geo_borders.cdf b/bench/data/geo_borders.cdf
similarity index 100%
rename from bench/geo_borders.cdf
rename to bench/data/geo_borders.cdf
diff --git a/bench/global.nc b/bench/data/global.nc
similarity index 100%
rename from bench/global.nc
rename to bench/data/global.nc
diff --git a/bench/grads_bug_file.nc b/bench/data/grads_bug_file.nc
similarity index 100%
rename from bench/grads_bug_file.nc
rename to bench/data/grads_bug_file.nc
diff --git a/bench/gt160w011_nts30.des b/bench/data/gt160w011_nts30.des
similarity index 100%
rename from bench/gt160w011_nts30.des
rename to bench/data/gt160w011_nts30.des
diff --git a/bench/gt4d011.cdf b/bench/data/gt4d011.cdf
similarity index 100%
rename from bench/gt4d011.cdf
rename to bench/data/gt4d011.cdf
diff --git a/bench/gtbc011.cdf b/bench/data/gtbc011.cdf
similarity index 100%
rename from bench/gtbc011.cdf
rename to bench/data/gtbc011.cdf
diff --git a/bench/gtsa056_1.cdf b/bench/data/gtsa056_1.cdf
similarity index 100%
rename from bench/gtsa056_1.cdf
rename to bench/data/gtsa056_1.cdf
diff --git a/bench/gtsa056_1_ef.nc b/bench/data/gtsa056_1_ef.nc
similarity index 100%
rename from bench/gtsa056_1_ef.nc
rename to bench/data/gtsa056_1_ef.nc
diff --git a/bench/gtsa056_2.cdf b/bench/data/gtsa056_2.cdf
similarity index 100%
rename from bench/gtsa056_2.cdf
rename to bench/data/gtsa056_2.cdf
diff --git a/bench/data/heat_00.nc b/bench/data/heat_00.nc
new file mode 100644
index 0000000..5190456
Binary files /dev/null and b/bench/data/heat_00.nc differ
diff --git a/bench/data/heat_01.nc b/bench/data/heat_01.nc
new file mode 100644
index 0000000..82d395c
Binary files /dev/null and b/bench/data/heat_01.nc differ
diff --git a/bench/data/heat_0a.nc b/bench/data/heat_0a.nc
new file mode 100644
index 0000000..039a772
Binary files /dev/null and b/bench/data/heat_0a.nc differ
diff --git a/bench/data/heat_0b.nc b/bench/data/heat_0b.nc
new file mode 100644
index 0000000..e2cb23e
Binary files /dev/null and b/bench/data/heat_0b.nc differ
diff --git a/bench/hourst.nc b/bench/data/hourst.nc
similarity index 100%
rename from bench/hourst.nc
rename to bench/data/hourst.nc
diff --git a/bench/illeg_axname.nc b/bench/data/illeg_axname.nc
similarity index 100%
rename from bench/illeg_axname.nc
rename to bench/data/illeg_axname.nc
diff --git a/bench/int.dat b/bench/data/int.dat
similarity index 100%
rename from bench/int.dat
rename to bench/data/int.dat
diff --git a/bench/intSwapped.dat b/bench/data/intSwapped.dat
similarity index 100%
rename from bench/intSwapped.dat
rename to bench/data/intSwapped.dat
diff --git a/bench/latestOb.nc b/bench/data/latestOb.nc
similarity index 100%
rename from bench/latestOb.nc
rename to bench/data/latestOb.nc
diff --git a/bench/lev_rev_up.nc b/bench/data/lev_rev_up.nc
similarity index 100%
rename from bench/lev_rev_up.nc
rename to bench/data/lev_rev_up.nc
diff --git a/bench/lev_v_bug.nc b/bench/data/lev_v_bug.nc
similarity index 100%
rename from bench/lev_v_bug.nc
rename to bench/data/lev_v_bug.nc
diff --git a/bench/levitus_3d_subset.nc b/bench/data/levitus_3d_subset.nc
similarity index 100%
rename from bench/levitus_3d_subset.nc
rename to bench/data/levitus_3d_subset.nc
diff --git a/bench/levitus_climatology.cdf b/bench/data/levitus_climatology.cdf
similarity index 100%
rename from bench/levitus_climatology.cdf
rename to bench/data/levitus_climatology.cdf
diff --git a/bench/longtitle1000.nc b/bench/data/longtitle1000.nc
similarity index 100%
rename from bench/longtitle1000.nc
rename to bench/data/longtitle1000.nc
diff --git a/bench/longvarnames.tsv b/bench/data/longvarnames.tsv
similarity index 100%
rename from bench/longvarnames.tsv
rename to bench/data/longvarnames.tsv
diff --git a/bench/lowercaseTime.nc b/bench/data/lowercaseTime.nc
similarity index 100%
rename from bench/lowercaseTime.nc
rename to bench/data/lowercaseTime.nc
diff --git a/bench/maize_1.nc b/bench/data/maize_1.nc
similarity index 100%
rename from bench/maize_1.nc
rename to bench/data/maize_1.nc
diff --git a/bench/maize_2.nc b/bench/data/maize_2.nc
similarity index 100%
rename from bench/maize_2.nc
rename to bench/data/maize_2.nc
diff --git a/bench/maize_3.nc b/bench/data/maize_3.nc
similarity index 100%
rename from bench/maize_3.nc
rename to bench/data/maize_3.nc
diff --git a/bench/mc_test.des b/bench/data/mc_test.des
similarity index 100%
rename from bench/mc_test.des
rename to bench/data/mc_test.des
diff --git a/bench/missing_scale_off.nc b/bench/data/missing_scale_off.nc
similarity index 100%
rename from bench/missing_scale_off.nc
rename to bench/data/missing_scale_off.nc
diff --git a/bench/modax.nc b/bench/data/modax.nc
similarity index 100%
rename from bench/modax.nc
rename to bench/data/modax.nc
diff --git a/bench/modfalse.nc b/bench/data/modfalse.nc
similarity index 100%
rename from bench/modfalse.nc
rename to bench/data/modfalse.nc
diff --git a/bench/modulo_lon_time.nc b/bench/data/modulo_lon_time.nc
similarity index 100%
rename from bench/modulo_lon_time.nc
rename to bench/data/modulo_lon_time.nc
diff --git a/bench/mylon.nc b/bench/data/mylon.nc
similarity index 100%
rename from bench/mylon.nc
rename to bench/data/mylon.nc
diff --git a/bench/nan_missing.nc b/bench/data/nan_missing.nc
similarity index 100%
rename from bench/nan_missing.nc
rename to bench/data/nan_missing.nc
diff --git a/bench/navy_uw.nc b/bench/data/navy_uw.nc
similarity index 100%
rename from bench/navy_uw.nc
rename to bench/data/navy_uw.nc
diff --git a/bench/nc5d.nc b/bench/data/nc5d.nc
similarity index 100%
rename from bench/nc5d.nc
rename to bench/data/nc5d.nc
diff --git a/bench/no_miss_att.nc b/bench/data/no_miss_att.nc
similarity index 100%
rename from bench/no_miss_att.nc
rename to bench/data/no_miss_att.nc
diff --git a/bench/nodim.nc b/bench/data/nodim.nc
similarity index 100%
rename from bench/nodim.nc
rename to bench/data/nodim.nc
diff --git a/bench/noglobalhistory.nc b/bench/data/noglobalhistory.nc
similarity index 100%
rename from bench/noglobalhistory.nc
rename to bench/data/noglobalhistory.nc
diff --git a/bench/non_COARDS.cdf b/bench/data/non_COARDS.cdf
similarity index 100%
rename from bench/non_COARDS.cdf
rename to bench/data/non_COARDS.cdf
diff --git a/bench/non_COARDS.cdl b/bench/data/non_COARDS.cdl
similarity index 100%
rename from bench/non_COARDS.cdl
rename to bench/data/non_COARDS.cdl
diff --git a/bench/numstring.nc b/bench/data/numstring.nc
similarity index 100%
rename from bench/numstring.nc
rename to bench/data/numstring.nc
diff --git a/bench/ocean_atlas_temp.cdf b/bench/data/ocean_atlas_temp.cdf
similarity index 100%
rename from bench/ocean_atlas_temp.cdf
rename to bench/data/ocean_atlas_temp.cdf
diff --git a/bench/proleptic_gregorian.nc b/bench/data/proleptic_gregorian.nc
similarity index 100%
rename from bench/proleptic_gregorian.nc
rename to bench/data/proleptic_gregorian.nc
diff --git a/bench/repeat_t_coord.nc b/bench/data/repeat_t_coord.nc
similarity index 100%
rename from bench/repeat_t_coord.nc
rename to bench/data/repeat_t_coord.nc
diff --git a/bench/reverse_axes.cdf b/bench/data/reverse_axes.cdf
similarity index 100%
rename from bench/reverse_axes.cdf
rename to bench/data/reverse_axes.cdf
diff --git a/bench/reverse_z_bnds.nc b/bench/data/reverse_z_bnds.nc
similarity index 100%
rename from bench/reverse_z_bnds.nc
rename to bench/data/reverse_z_bnds.nc
diff --git a/bench/run1.nc b/bench/data/run1.nc
similarity index 100%
rename from bench/run1.nc
rename to bench/data/run1.nc
diff --git a/bench/run2.nc b/bench/data/run2.nc
similarity index 100%
rename from bench/run2.nc
rename to bench/data/run2.nc
diff --git a/bench/run3.nc b/bench/data/run3.nc
similarity index 100%
rename from bench/run3.nc
rename to bench/data/run3.nc
diff --git a/bench/run4.nc b/bench/data/run4.nc
similarity index 100%
rename from bench/run4.nc
rename to bench/data/run4.nc
diff --git a/bench/scat2grid.nc b/bench/data/scat2grid.nc
similarity index 100%
rename from bench/scat2grid.nc
rename to bench/data/scat2grid.nc
diff --git a/bench/short.dat b/bench/data/short.dat
similarity index 100%
rename from bench/short.dat
rename to bench/data/short.dat
diff --git a/bench/shortSwapped.dat b/bench/data/shortSwapped.dat
similarity index 100%
rename from bench/shortSwapped.dat
rename to bench/data/shortSwapped.dat
diff --git a/bench/shorttemp.nc b/bench/data/shorttemp.nc
similarity index 100%
rename from bench/shorttemp.nc
rename to bench/data/shorttemp.nc
diff --git a/bench/shorttest.dat b/bench/data/shorttest.dat
similarity index 100%
rename from bench/shorttest.dat
rename to bench/data/shorttest.dat
diff --git a/bench/skip.dat b/bench/data/skip.dat
similarity index 100%
rename from bench/skip.dat
rename to bench/data/skip.dat
diff --git a/bench/ss_small.nc b/bench/data/ss_small.nc
similarity index 100%
rename from bench/ss_small.nc
rename to bench/data/ss_small.nc
diff --git a/bench/sstnok_short.nc b/bench/data/sstnok_short.nc
similarity index 100%
rename from bench/sstnok_short.nc
rename to bench/data/sstnok_short.nc
diff --git a/bench/sstok_short.nc b/bench/data/sstok_short.nc
similarity index 100%
rename from bench/sstok_short.nc
rename to bench/data/sstok_short.nc
diff --git a/bench/strdimfile.nc b/bench/data/strdimfile.nc
similarity index 100%
rename from bench/strdimfile.nc
rename to bench/data/strdimfile.nc
diff --git a/bench/stream10by5_i386-apple-darwin.unf b/bench/data/stream10by5_i386-apple-darwin.unf
similarity index 100%
rename from bench/stream10by5_i386-apple-darwin.unf
rename to bench/data/stream10by5_i386-apple-darwin.unf
diff --git a/bench/stream10by5_ia64-linux.unf b/bench/data/stream10by5_ia64-linux.unf
similarity index 100%
rename from bench/stream10by5_ia64-linux.unf
rename to bench/data/stream10by5_ia64-linux.unf
diff --git a/bench/stream10by5_ia64-sles9.unf b/bench/data/stream10by5_ia64-sles9.unf
similarity index 100%
rename from bench/stream10by5_ia64-sles9.unf
rename to bench/data/stream10by5_ia64-sles9.unf
diff --git a/bench/stream10by5_linux.unf b/bench/data/stream10by5_linux.unf
similarity index 100%
rename from bench/stream10by5_linux.unf
rename to bench/data/stream10by5_linux.unf
diff --git a/bench/stream10by5_x86_64-darwin.unf b/bench/data/stream10by5_x86_64-darwin.unf
similarity index 100%
rename from bench/stream10by5_x86_64-darwin.unf
rename to bench/data/stream10by5_x86_64-darwin.unf
diff --git a/bench/stream10by5_x86_64-linux.unf b/bench/data/stream10by5_x86_64-linux.unf
similarity index 100%
rename from bench/stream10by5_x86_64-linux.unf
rename to bench/data/stream10by5_x86_64-linux.unf
diff --git a/bench/string5d.nc b/bench/data/string5d.nc
similarity index 100%
rename from bench/string5d.nc
rename to bench/data/string5d.nc
diff --git a/bench/test0.nc b/bench/data/test0.nc
similarity index 100%
rename from bench/test0.nc
rename to bench/data/test0.nc
diff --git a/bench/test_axes.nc b/bench/data/test_axes.nc
similarity index 100%
rename from bench/test_axes.nc
rename to bench/data/test_axes.nc
diff --git a/bench/test_nan.nc b/bench/data/test_nan.nc
similarity index 100%
rename from bench/test_nan.nc
rename to bench/data/test_nan.nc
diff --git a/bench/test_save_dsg_in.nc b/bench/data/test_save_dsg_in.nc
similarity index 100%
rename from bench/test_save_dsg_in.nc
rename to bench/data/test_save_dsg_in.nc
diff --git a/bench/time_axis_seconds.nc b/bench/data/time_axis_seconds.nc
similarity index 100%
rename from bench/time_axis_seconds.nc
rename to bench/data/time_axis_seconds.nc
diff --git a/bench/timemissing.nc b/bench/data/timemissing.nc
similarity index 100%
rename from bench/timemissing.nc
rename to bench/data/timemissing.nc
diff --git a/bench/timesec.nc b/bench/data/timesec.nc
similarity index 100%
rename from bench/timesec.nc
rename to bench/data/timesec.nc
diff --git a/bench/tnok_short.des b/bench/data/tnok_short.des
similarity index 100%
rename from bench/tnok_short.des
rename to bench/data/tnok_short.des
diff --git a/bench/tok_short.des b/bench/data/tok_short.des
similarity index 100%
rename from bench/tok_short.des
rename to bench/data/tok_short.des
diff --git a/bench/toolong.nc b/bench/data/toolong.nc
similarity index 100%
rename from bench/toolong.nc
rename to bench/data/toolong.nc
diff --git a/bench/trajectory_trajectory_name.nc b/bench/data/trajectory_trajectory_name.nc
similarity index 100%
rename from bench/trajectory_trajectory_name.nc
rename to bench/data/trajectory_trajectory_name.nc
diff --git a/bench/tripolar_subset.nc b/bench/data/tripolar_subset.nc
similarity index 100%
rename from bench/tripolar_subset.nc
rename to bench/data/tripolar_subset.nc
diff --git a/bench/truemonth.nc b/bench/data/truemonth.nc
similarity index 100%
rename from bench/truemonth.nc
rename to bench/data/truemonth.nc
diff --git a/bench/twoType.dat b/bench/data/twoType.dat
similarity index 100%
rename from bench/twoType.dat
rename to bench/data/twoType.dat
diff --git a/bench/twodtime.nc b/bench/data/twodtime.nc
similarity index 100%
rename from bench/twodtime.nc
rename to bench/data/twodtime.nc
diff --git a/bench/uncentered.nc b/bench/data/uncentered.nc
similarity index 100%
rename from bench/uncentered.nc
rename to bench/data/uncentered.nc
diff --git a/bench/vary_scale.des b/bench/data/vary_scale.des
similarity index 100%
rename from bench/vary_scale.des
rename to bench/data/vary_scale.des
diff --git a/bench/varyscale_1.nc b/bench/data/varyscale_1.nc
similarity index 100%
rename from bench/varyscale_1.nc
rename to bench/data/varyscale_1.nc
diff --git a/bench/varyscale_2.nc b/bench/data/varyscale_2.nc
similarity index 100%
rename from bench/varyscale_2.nc
rename to bench/data/varyscale_2.nc
diff --git a/bench/weird_name1.cdf b/bench/data/weird_name1.cdf
similarity index 100%
rename from bench/weird_name1.cdf
rename to bench/data/weird_name1.cdf
diff --git a/bench/write_int_att.nc b/bench/data/write_int_att.nc
similarity index 100%
rename from bench/write_int_att.nc
rename to bench/data/write_int_att.nc
diff --git a/bench/xsz.nc b/bench/data/xsz.nc
similarity index 100%
rename from bench/xsz.nc
rename to bench/data/xsz.nc
diff --git a/bench/xz_nozattrib.nc b/bench/data/xz_nozattrib.nc
similarity index 100%
rename from bench/xz_nozattrib.nc
rename to bench/data/xz_nozattrib.nc
diff --git a/bench/z_wide_variation.nc b/bench/data/z_wide_variation.nc
similarity index 100%
rename from bench/z_wide_variation.nc
rename to bench/data/z_wide_variation.nc
diff --git a/bench/ferret_startup b/bench/ferret_startup
index a69b6bf..10b90c0 100644
--- a/bench/ferret_startup
+++ b/bench/ferret_startup
@@ -1,7 +1,7 @@
 CAN MODE VERIFY
 
 ! This file will be copied to .ferret as part
-! pf the benchmark testing
+! of the benchmark testing
 
 SET MEMORY/SIZE=31
 SET MODE journal startup_tests.jnl
diff --git a/bench/bench_add_9.jnl b/bench/genjnls/bench_add_9.jnl
similarity index 100%
rename from bench/bench_add_9.jnl
rename to bench/genjnls/bench_add_9.jnl
diff --git a/bench/bench_avet.jnl b/bench/genjnls/bench_avet.jnl
similarity index 100%
rename from bench/bench_avet.jnl
rename to bench/genjnls/bench_avet.jnl
diff --git a/bench/bench_examples.jnl b/bench/genjnls/bench_examples.jnl
similarity index 100%
rename from bench/bench_examples.jnl
rename to bench/genjnls/bench_examples.jnl
diff --git a/bench/bench_pass_thru.jnl b/bench/genjnls/bench_pass_thru.jnl
similarity index 100%
rename from bench/bench_pass_thru.jnl
rename to bench/genjnls/bench_pass_thru.jnl
diff --git a/bench/bench_storage.jnl b/bench/genjnls/bench_storage.jnl
similarity index 100%
rename from bench/bench_storage.jnl
rename to bench/genjnls/bench_storage.jnl
diff --git a/bench/bench_subtract.jnl b/bench/genjnls/bench_subtract.jnl
similarity index 100%
rename from bench/bench_subtract.jnl
rename to bench/genjnls/bench_subtract.jnl
diff --git a/bench/bn_all.jnl b/bench/genjnls/bn_all.jnl
similarity index 98%
rename from bench/bn_all.jnl
rename to bench/genjnls/bn_all.jnl
index 451fdf8..8a07f65 100644
--- a/bench/bn_all.jnl
+++ b/bench/genjnls/bn_all.jnl
@@ -1143,9 +1143,23 @@ GO bn_iin_regrid
 
 ! *********** v7.21 Additions ***********
 
-GO bn_reset
+GO bn_reset bn721_bug_fixes
 GO bn721_bug_fixes
 
+! *********** v7.22 Additions ***********
+
+GO bn_reset bn722_bug_fixes
+GO bn722_bug_fixes
+
+GO bn_reset bn_tseries_modulo
+GO bn_tseries_modulo
+
+GO bn_reset bn_huge_axis
+GO bn_huge_axis
+
+GO bn_reset bn_save_as_global
+GO bn_save_as_global
+
 !  *********** Always do a bn_reset  *********** 
 !  *********** make sure things clean up well **
 GO bn_reset
diff --git a/bench/bn_all_ef.jnl b/bench/genjnls/bn_all_ef.jnl
similarity index 100%
rename from bench/bn_all_ef.jnl
rename to bench/genjnls/bn_all_ef.jnl
diff --git a/bench/bn_all_ef_shell.jnl b/bench/genjnls/bn_all_ef_shell.jnl
similarity index 100%
rename from bench/bn_all_ef_shell.jnl
rename to bench/genjnls/bn_all_ef_shell.jnl
diff --git a/bench/bn_all_shell.jnl b/bench/genjnls/bn_all_shell.jnl
similarity index 100%
rename from bench/bn_all_shell.jnl
rename to bench/genjnls/bn_all_shell.jnl
diff --git a/bench/bn_batch_metafile.jnl b/bench/genjnls/bn_batch_metafile.jnl
similarity index 100%
rename from bench/bn_batch_metafile.jnl
rename to bench/genjnls/bn_batch_metafile.jnl
diff --git a/bench/bn_batch_metafile_shell.jnl b/bench/genjnls/bn_batch_metafile_shell.jnl
similarity index 100%
rename from bench/bn_batch_metafile_shell.jnl
rename to bench/genjnls/bn_batch_metafile_shell.jnl
diff --git a/bench/bn_ef_external_functions.jnl b/bench/genjnls/bn_ef_external_functions.jnl
similarity index 100%
rename from bench/bn_ef_external_functions.jnl
rename to bench/genjnls/bn_ef_external_functions.jnl
diff --git a/bench/bn_external_functions.jnl b/bench/genjnls/bn_external_functions.jnl
similarity index 100%
rename from bench/bn_external_functions.jnl
rename to bench/genjnls/bn_external_functions.jnl
diff --git a/bench/bn_fcn_calls.jnl b/bench/genjnls/bn_fcn_calls.jnl
similarity index 100%
rename from bench/bn_fcn_calls.jnl
rename to bench/genjnls/bn_fcn_calls.jnl
diff --git a/bench/bn_gif.jnl b/bench/genjnls/bn_gif.jnl
similarity index 100%
rename from bench/bn_gif.jnl
rename to bench/genjnls/bn_gif.jnl
diff --git a/bench/bn_gif_shell.jnl b/bench/genjnls/bn_gif_shell.jnl
similarity index 100%
rename from bench/bn_gif_shell.jnl
rename to bench/genjnls/bn_gif_shell.jnl
diff --git a/bench/bn_hovmuller_overlays.jnl b/bench/genjnls/bn_hovmuller_overlays.jnl
similarity index 100%
rename from bench/bn_hovmuller_overlays.jnl
rename to bench/genjnls/bn_hovmuller_overlays.jnl
diff --git a/bench/bn_labels_on_taxis.jnl b/bench/genjnls/bn_labels_on_taxis.jnl
similarity index 100%
rename from bench/bn_labels_on_taxis.jnl
rename to bench/genjnls/bn_labels_on_taxis.jnl
diff --git a/bench/bn_ps.jnl b/bench/genjnls/bn_ps.jnl
similarity index 100%
rename from bench/bn_ps.jnl
rename to bench/genjnls/bn_ps.jnl
diff --git a/bench/bn_ps_shell.jnl b/bench/genjnls/bn_ps_shell.jnl
similarity index 100%
rename from bench/bn_ps_shell.jnl
rename to bench/genjnls/bn_ps_shell.jnl
diff --git a/bench/bn_reset.jnl b/bench/genjnls/bn_reset.jnl
similarity index 95%
rename from bench/bn_reset.jnl
rename to bench/genjnls/bn_reset.jnl
index f9caf52..045446b 100644
--- a/bench/bn_reset.jnl
+++ b/bench/genjnls/bn_reset.jnl
@@ -14,6 +14,7 @@ CANCEL REGION/ALL
 CANCEL DATA/ALL
 CANCEL VARIABLES/ALL
 CANCEL MEMORY/ALL
+SET MEMORY/SIZE=25.6 ! return to the default setting
 CANCEL MODE STUPID   ! added 4/2017
 SET GRID ABSTRACT
 CANCEL MODE DIAGNOSTIC
diff --git a/bench/bn_startupfile.jnl b/bench/genjnls/bn_startupfile.jnl
similarity index 100%
rename from bench/bn_startupfile.jnl
rename to bench/genjnls/bn_startupfile.jnl
diff --git a/bench/bn_startupfile_shell.jnl b/bench/genjnls/bn_startupfile_shell.jnl
similarity index 100%
rename from bench/bn_startupfile_shell.jnl
rename to bench/genjnls/bn_startupfile_shell.jnl
diff --git a/bench/ddsg_socat3.jnl b/bench/genjnls/ddsg_socat3.jnl
similarity index 100%
rename from bench/ddsg_socat3.jnl
rename to bench/genjnls/ddsg_socat3.jnl
diff --git a/bench/metafile_masters_64bit_rh6/bat.plt_6 b/bench/metafile_masters_64bit_rh6/bat.plt_6
index bb5b36f..c8f7ef3 100644
--- a/bench/metafile_masters_64bit_rh6/bat.plt_6
+++ b/bench/metafile_masters_64bit_rh6/bat.plt_6
@@ -1,4 +1,4 @@
-GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1                      
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1                      
   4      12       3       0
  51      29      19       1    1.00000       0
  56      39       2    1.00000    0.00000    0.00000
@@ -84,7 +84,7 @@ GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
  11    6914     314    0.55405    0.40469    0.55542    0.40485    0.55678    0.40511    0.55810    0.40548    0.55938    0.40596    0.56061    0.40653    0.56178    0.40720    0.56287    0.40797    0.56389    0.40882    0.56482    0.40976    0.56566    0.41078    0.56639    0.41188    0.56700    0.41305    0.56750    0.41428    0.56787    0.41557    0.56811    0.41691    0.56821    0.41829    0.56817    0.41971    0.56798    0.42116    0.56764    0.42263    0.56714    0.42412    0.56649 [...]
  21       6       1
  25       6       1
- 11     864      39    0.11765    0.13725    0.11765    0.13725    0.11765    0.13725    0.10539    0.13725    0.11765    0.13725    0.11765    0.19073    0.10539    0.19073    0.11765    0.19073    0.11765    0.24421    0.10539    0.24421    0.11765    0.24421    0.11765    0.29768    0.10539    0.29768    0.11765    0.29768    0.11765    0.35116    0.10539    0.35116    0.11765    0.35116    0.11765    0.40463    0.10539    0.40463    0.11765    0.40463    0.11765    0.45811    0.10539 [...]
+ 11     864      39    0.11765    0.13725    0.11765    0.13725    0.10539    0.13725    0.11765    0.13725    0.11765    0.19073    0.10539    0.19073    0.11765    0.19073    0.11765    0.24421    0.10539    0.24421    0.11765    0.24421    0.11765    0.29768    0.10539    0.29768    0.11765    0.29768    0.11765    0.35116    0.10539    0.35116    0.11765    0.35116    0.11765    0.40463    0.10539    0.40463    0.11765    0.40463    0.11765    0.45811    0.10539    0.45811    0.11765 [...]
  11      50       2    0.05509    0.19003    0.06349    0.19003
  11     314      14    0.06723    0.19330    0.06723    0.19377    0.06769    0.19470    0.06816    0.19517    0.06909    0.19563    0.07096    0.19563    0.07190    0.19517    0.07236    0.19470    0.07283    0.19377    0.07283    0.19283    0.07236    0.19190    0.07143    0.19050    0.06676    0.18583    0.07330    0.18583
  11     380      17    0.07890    0.19563    0.07750    0.19517    0.07656    0.19377    0.07610    0.19143    0.07610    0.19003    0.07656    0.18770    0.07750    0.18630    0.07890    0.18583    0.07983    0.18583    0.08123    0.18630    0.08217    0.18770    0.08263    0.19003    0.08263    0.19143    0.08217    0.19377    0.08123    0.19517    0.07983    0.19563    0.07890    0.19563
@@ -109,9 +109,9 @@ GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
  11     380      17    0.07890    0.73039    0.07750    0.72993    0.07656    0.72852    0.07610    0.72619    0.07610    0.72479    0.07656    0.72246    0.07750    0.72105    0.07890    0.72059    0.07983    0.72059    0.08123    0.72105    0.08217    0.72246    0.08263    0.72479    0.08263    0.72619    0.08217    0.72852    0.08123    0.72993    0.07983    0.73039    0.07890    0.73039
  11     380      17    0.08824    0.73039    0.08683    0.72993    0.08590    0.72852    0.08543    0.72619    0.08543    0.72479    0.08590    0.72246    0.08683    0.72105    0.08824    0.72059    0.08917    0.72059    0.09057    0.72105    0.09150    0.72246    0.09197    0.72479    0.09197    0.72619    0.09150    0.72852    0.09057    0.72993    0.08917    0.73039    0.08824    0.73039
  11     116       5    0.09570    0.72152    0.09524    0.72105    0.09570    0.72059    0.09617    0.72105    0.09570    0.72152
- 11     864      39    0.90196    0.13725    0.90196    0.13725    0.90196    0.13725    0.91422    0.13725    0.90196    0.13725    0.90196    0.19073    0.91422    0.19073    0.90196    0.19073    0.90196    0.24421    0.91422    0.24421    0.90196    0.24421    0.90196    0.29768    0.91422    0.29768    0.90196    0.29768    0.90196    0.35116    0.91422    0.35116    0.90196    0.35116    0.90196    0.40463    0.91422    0.40463    0.90196    0.40463    0.90196    0.45811    0.91422 [...]
- 11     864      39    0.13703    0.72549    0.11765    0.72549    0.13703    0.72549    0.13703    0.73775    0.13703    0.72549    0.20630    0.72549    0.20630    0.73775    0.20630    0.72549    0.27558    0.72549    0.27558    0.73775    0.27558    0.72549    0.34485    0.72549    0.34485    0.73775    0.34485    0.72549    0.41412    0.72549    0.41412    0.73775    0.41412    0.72549    0.48339    0.72549    0.48339    0.73775    0.48339    0.72549    0.55267    0.72549    0.55267 [...]
- 11     864      39    0.13703    0.13725    0.11765    0.13725    0.13703    0.13725    0.13703    0.12500    0.13703    0.13725    0.20630    0.13725    0.20630    0.12500    0.20630    0.13725    0.27558    0.13725    0.27558    0.12500    0.27558    0.13725    0.34485    0.13725    0.34485    0.12500    0.34485    0.13725    0.41412    0.13725    0.41412    0.12500    0.41412    0.13725    0.48339    0.13725    0.48339    0.12500    0.48339    0.13725    0.55267    0.13725    0.55267 [...]
+ 11     864      39    0.90196    0.13725    0.90196    0.13725    0.91422    0.13725    0.90196    0.13725    0.90196    0.19073    0.91422    0.19073    0.90196    0.19073    0.90196    0.24421    0.91422    0.24421    0.90196    0.24421    0.90196    0.29768    0.91422    0.29768    0.90196    0.29768    0.90196    0.35116    0.91422    0.35116    0.90196    0.35116    0.90196    0.40463    0.91422    0.40463    0.90196    0.40463    0.90196    0.45811    0.91422    0.45811    0.90196 [...]
+ 11     864      39    0.13703    0.72549    0.13703    0.72549    0.13703    0.73775    0.13703    0.72549    0.20630    0.72549    0.20630    0.73775    0.20630    0.72549    0.27558    0.72549    0.27558    0.73775    0.27558    0.72549    0.34485    0.72549    0.34485    0.73775    0.34485    0.72549    0.41412    0.72549    0.41412    0.73775    0.41412    0.72549    0.48339    0.72549    0.48339    0.73775    0.48339    0.72549    0.55267    0.72549    0.55267    0.73775    0.55267 [...]
+ 11     864      39    0.13703    0.13725    0.13703    0.13725    0.13703    0.12500    0.13703    0.13725    0.20630    0.13725    0.20630    0.12500    0.20630    0.13725    0.27558    0.13725    0.27558    0.12500    0.27558    0.13725    0.34485    0.13725    0.34485    0.12500    0.34485    0.13725    0.41412    0.13725    0.41412    0.12500    0.41412    0.13725    0.48339    0.13725    0.48339    0.12500    0.48339    0.13725    0.55267    0.13725    0.55267    0.12500    0.55267 [...]
  11      50       2    0.11649    0.11057    0.12489    0.11057
  11     336      15    0.12909    0.11618    0.13423    0.11618    0.13143    0.11244    0.13283    0.11244    0.13376    0.11197    0.13423    0.11151    0.13470    0.11011    0.13470    0.10917    0.13423    0.10777    0.13329    0.10684    0.13189    0.10637    0.13049    0.10637    0.12909    0.10684    0.12863    0.10731    0.12816    0.10824
  11     380      17    0.14030    0.11618    0.13890    0.11571    0.13796    0.11431    0.13750    0.11197    0.13750    0.11057    0.13796    0.10824    0.13890    0.10684    0.14030    0.10637    0.14123    0.10637    0.14263    0.10684    0.14357    0.10824    0.14403    0.11057    0.14403    0.11197    0.14357    0.11431    0.14263    0.11571    0.14123    0.11618    0.14030    0.11618
@@ -199,22 +199,6 @@ GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
  11      72       3    0.00980    0.08725    0.00980    0.08725    0.06127    0.08725
  21       6       1
  25       6       1
- 11      50       2    0.11933    0.79608    0.12717    0.78431
- 11      50       2    0.12717    0.79608    0.11933    0.78431
- 11     116       5    0.14062    0.79216    0.14006    0.79160    0.14062    0.79104    0.14118    0.79160    0.14062    0.79216
- 11     116       5    0.14062    0.78543    0.14006    0.78487    0.14062    0.78431    0.14118    0.78487    0.14062    0.78543
- 11     380      17    0.15742    0.79608    0.15574    0.79552    0.15462    0.79384    0.15406    0.79104    0.15406    0.78936    0.15462    0.78655    0.15574    0.78487    0.15742    0.78431    0.15854    0.78431    0.16022    0.78487    0.16134    0.78655    0.16190    0.78936    0.16190    0.79104    0.16134    0.79384    0.16022    0.79552    0.15854    0.79608    0.15742    0.79608
- 11     116       5    0.16639    0.78543    0.16583    0.78487    0.16639    0.78431    0.16695    0.78487    0.16639    0.78543
- 11     380      17    0.17759    0.79608    0.17199    0.79608    0.17143    0.79104    0.17199    0.79160    0.17367    0.79216    0.17535    0.79216    0.17703    0.79160    0.17815    0.79048    0.17871    0.78880    0.17871    0.78768    0.17815    0.78599    0.17703    0.78487    0.17535    0.78431    0.17367    0.78431    0.17199    0.78487    0.17143    0.78543    0.17087    0.78655
- 11     116       5    0.19216    0.79608    0.19216    0.78655    0.19272    0.78487    0.19384    0.78431    0.19496    0.78431
- 11      50       2    0.19048    0.79216    0.19440    0.79216
- 11     380      17    0.20056    0.79216    0.19944    0.79160    0.19832    0.79048    0.19776    0.78880    0.19776    0.78768    0.19832    0.78599    0.19944    0.78487    0.20056    0.78431    0.20224    0.78431    0.20336    0.78487    0.20448    0.78599    0.20504    0.78768    0.20504    0.78880    0.20448    0.79048    0.20336    0.79160    0.20224    0.79216    0.20056    0.79216
- 11     336      15    0.21849    0.79608    0.22465    0.79608    0.22129    0.79160    0.22297    0.79160    0.22409    0.79104    0.22465    0.79048    0.22521    0.78880    0.22521    0.78768    0.22465    0.78599    0.22353    0.78487    0.22185    0.78431    0.22017    0.78431    0.21849    0.78487    0.21793    0.78543    0.21737    0.78655
- 11      94       4    0.23025    0.79384    0.23137    0.79440    0.23305    0.79608    0.23305    0.78431
- 11      72       3    0.24538    0.79608    0.23978    0.78824    0.24818    0.78824
- 11      50       2    0.24538    0.79608    0.24538    0.78431
- 11     116       5    0.25210    0.78543    0.25154    0.78487    0.25210    0.78431    0.25266    0.78487    0.25210    0.78543
- 11     380      17    0.26331    0.79608    0.25770    0.79608    0.25714    0.79104    0.25770    0.79160    0.25938    0.79216    0.26106    0.79216    0.26275    0.79160    0.26387    0.79048    0.26443    0.78880    0.26443    0.78768    0.26387    0.78599    0.26275    0.78487    0.26106    0.78431    0.25938    0.78431    0.25770    0.78487    0.25714    0.78543    0.25658    0.78655
  11      50       2    0.07306    0.09118    0.07306    0.08333
  11      50       2    0.07754    0.08894    0.07754    0.08445
  11      50       2    0.07568    0.08782    0.07941    0.08557
diff --git a/bench/metafile_masters_64bit_rh6/bnplot-3.plt b/bench/metafile_masters_64bit_rh6/bnplot-3.plt
index c23d113..dba6a62 100644
--- a/bench/metafile_masters_64bit_rh6/bnplot-3.plt
+++ b/bench/metafile_masters_64bit_rh6/bnplot-3.plt
@@ -1,4 +1,4 @@
-GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1                      
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1                      
   4      12       3       0
  51      29      19       1    1.00000       0
  56      39       2    1.00000    0.00000    0.00000
@@ -2824,6 +2824,8 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  81       6      65
  21       6       1
  25       6       1
+ 21       6       1
+ 25       6       1
  71      44    0.00000    1.00000    0.00000    0.57516
  72      44    0.00000   15.30000    0.00000    8.80000
  11     446      20    0.79961    0.11466    0.80238    0.11905    0.80578    0.12414    0.80935    0.12905    0.81227    0.13254    0.81397    0.13395    0.81451    0.13366    0.81436    0.13250    0.81395    0.13119    0.81357    0.13010    0.81337    0.12940    0.81342    0.12916    0.81376    0.12940    0.81444    0.13016    0.81550    0.13150    0.81702    0.13348    0.81906    0.13620    0.82171    0.13976    0.82499    0.14419    0.82882    0.14936
@@ -2886,6 +2888,8 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      50       2    0.77982    0.13618    0.77293    0.14582
  11     446      20    0.77982    0.13618    0.78060    0.13523    0.78141    0.13425    0.78223    0.13324    0.78309    0.13221    0.78396    0.13114    0.78486    0.13004    0.78579    0.12891    0.78675    0.12774    0.78774    0.12654    0.78875    0.12530    0.78981    0.12402    0.79089    0.12269    0.79201    0.12133    0.79317    0.11991    0.79437    0.11845    0.79561    0.11694    0.79690    0.11537    0.79823    0.11375    0.79961    0.11207
  11      50       2    0.79961    0.11207    0.79961    0.11466
+ 21       6       1
+ 25       6       1
  82       0
  81       6      66
  82       0
diff --git a/bench/metafile_masters_64bit_rh6/bnplot-4.plt b/bench/metafile_masters_64bit_rh6/bnplot-4.plt
index b108f3c..26f4c44 100644
--- a/bench/metafile_masters_64bit_rh6/bnplot-4.plt
+++ b/bench/metafile_masters_64bit_rh6/bnplot-4.plt
@@ -1,4 +1,4 @@
-GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1                      
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1                      
   4      12       3       0
  51      29      19       1    1.00000       0
  56      39       2    1.00000    0.00000    0.00000
@@ -244,12 +244,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      50       2    0.03652    0.42477    0.04427    0.41701
  21       6       1
  25       6       1
- 11      50       2    0.04817    0.43511    0.04817    0.42994
- 11      72       3    0.04989    0.43166    0.05186    0.43289    0.05383    0.43166
- 11      72       3    0.04989    0.43166    0.05186    0.43265    0.05383    0.43166
- 11      94       4    0.05605    0.43413    0.05654    0.43437    0.05728    0.43511    0.05728    0.42994
- 11     116       5    0.06073    0.43043    0.06048    0.43019    0.06073    0.42994    0.06097    0.43019    0.06073    0.43043
- 11      94       4    0.06343    0.43413    0.06393    0.43437    0.06467    0.43511    0.06467    0.42994
  11      50       2    0.04817    0.42348    0.04817    0.41831
  11      72       3    0.04989    0.42003    0.05186    0.42126    0.05383    0.42003
  11      72       3    0.04989    0.42003    0.05186    0.42101    0.05383    0.42003
@@ -312,18 +306,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      50       2    0.03781    0.41184    0.04298    0.40667
  21       6       1
  25       6       1
- 11      50       2    0.04817    0.43511    0.04817    0.42994
- 11      72       3    0.04989    0.43166    0.05186    0.43289    0.05383    0.43166
- 11      72       3    0.04989    0.43166    0.05186    0.43265    0.05383    0.43166
- 11      94       4    0.05605    0.43413    0.05654    0.43437    0.05728    0.43511    0.05728    0.42994
- 11     116       5    0.06073    0.43043    0.06048    0.43019    0.06073    0.42994    0.06097    0.43019    0.06073    0.43043
- 11      94       4    0.06343    0.43413    0.06393    0.43437    0.06467    0.43511    0.06467    0.42994
- 11      50       2    0.04817    0.42348    0.04817    0.41831
- 11      72       3    0.04989    0.42003    0.05186    0.42126    0.05383    0.42003
- 11      72       3    0.04989    0.42003    0.05186    0.42101    0.05383    0.42003
- 11      94       4    0.05605    0.42249    0.05654    0.42274    0.05728    0.42348    0.05728    0.41831
- 11     116       5    0.06073    0.41880    0.06048    0.41855    0.06073    0.41831    0.06097    0.41855    0.06073    0.41880
- 11     314      14    0.06294    0.42225    0.06294    0.42249    0.06319    0.42298    0.06343    0.42323    0.06393    0.42348    0.06491    0.42348    0.06540    0.42323    0.06565    0.42298    0.06590    0.42249    0.06590    0.42200    0.06565    0.42151    0.06516    0.42077    0.06270    0.41831    0.06614    0.41831
  11      50       2    0.04817    0.41184    0.04817    0.40667
  11      72       3    0.04989    0.40839    0.05186    0.40963    0.05383    0.40839
  11      72       3    0.04989    0.40839    0.05186    0.40938    0.05383    0.40839
@@ -357,24 +339,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      72       3    0.00646    0.39762    0.00646    0.39762    0.04040    0.39762
  21       6       1
  25       6       1
- 11      50       2    0.04817    0.43511    0.04817    0.42994
- 11      72       3    0.04989    0.43166    0.05186    0.43289    0.05383    0.43166
- 11      72       3    0.04989    0.43166    0.05186    0.43265    0.05383    0.43166
- 11      94       4    0.05605    0.43413    0.05654    0.43437    0.05728    0.43511    0.05728    0.42994
- 11     116       5    0.06073    0.43043    0.06048    0.43019    0.06073    0.42994    0.06097    0.43019    0.06073    0.43043
- 11      94       4    0.06343    0.43413    0.06393    0.43437    0.06467    0.43511    0.06467    0.42994
- 11      50       2    0.04817    0.42348    0.04817    0.41831
- 11      72       3    0.04989    0.42003    0.05186    0.42126    0.05383    0.42003
- 11      72       3    0.04989    0.42003    0.05186    0.42101    0.05383    0.42003
- 11      94       4    0.05605    0.42249    0.05654    0.42274    0.05728    0.42348    0.05728    0.41831
- 11     116       5    0.06073    0.41880    0.06048    0.41855    0.06073    0.41831    0.06097    0.41855    0.06073    0.41880
- 11     314      14    0.06294    0.42225    0.06294    0.42249    0.06319    0.42298    0.06343    0.42323    0.06393    0.42348    0.06491    0.42348    0.06540    0.42323    0.06565    0.42298    0.06590    0.42249    0.06590    0.42200    0.06565    0.42151    0.06516    0.42077    0.06270    0.41831    0.06614    0.41831
- 11      50       2    0.04817    0.41184    0.04817    0.40667
- 11      72       3    0.04989    0.40839    0.05186    0.40963    0.05383    0.40839
- 11      72       3    0.04989    0.40839    0.05186    0.40938    0.05383    0.40839
- 11      94       4    0.05605    0.41086    0.05654    0.41110    0.05728    0.41184    0.05728    0.40667
- 11     116       5    0.06073    0.40716    0.06048    0.40692    0.06073    0.40667    0.06097    0.40692    0.06073    0.40716
- 11     336      15    0.06319    0.41184    0.06590    0.41184    0.06442    0.40987    0.06516    0.40987    0.06565    0.40963    0.06590    0.40938    0.06614    0.40864    0.06614    0.40815    0.06590    0.40741    0.06540    0.40692    0.06467    0.40667    0.06393    0.40667    0.06319    0.40692    0.06294    0.40716    0.06270    0.40766
  11      50       2    0.04817    0.40021    0.04817    0.39504
  11      72       3    0.04989    0.39676    0.05186    0.39799    0.05383    0.39676
  11      72       3    0.04989    0.39676    0.05186    0.39775    0.05383    0.39676
@@ -400,31 +364,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      72       3    0.00646    0.38599    0.00646    0.38599    0.04040    0.38599
  21       6       1
  25       6       1
- 11      50       2    0.04817    0.43511    0.04817    0.42994
- 11      72       3    0.04989    0.43166    0.05186    0.43289    0.05383    0.43166
- 11      72       3    0.04989    0.43166    0.05186    0.43265    0.05383    0.43166
- 11      94       4    0.05605    0.43413    0.05654    0.43437    0.05728    0.43511    0.05728    0.42994
- 11     116       5    0.06073    0.43043    0.06048    0.43019    0.06073    0.42994    0.06097    0.43019    0.06073    0.43043
- 11      94       4    0.06343    0.43413    0.06393    0.43437    0.06467    0.43511    0.06467    0.42994
- 11      50       2    0.04817    0.42348    0.04817    0.41831
- 11      72       3    0.04989    0.42003    0.05186    0.42126    0.05383    0.42003
- 11      72       3    0.04989    0.42003    0.05186    0.42101    0.05383    0.42003
- 11      94       4    0.05605    0.42249    0.05654    0.42274    0.05728    0.42348    0.05728    0.41831
- 11     116       5    0.06073    0.41880    0.06048    0.41855    0.06073    0.41831    0.06097    0.41855    0.06073    0.41880
- 11     314      14    0.06294    0.42225    0.06294    0.42249    0.06319    0.42298    0.06343    0.42323    0.06393    0.42348    0.06491    0.42348    0.06540    0.42323    0.06565    0.42298    0.06590    0.42249    0.06590    0.42200    0.06565    0.42151    0.06516    0.42077    0.06270    0.41831    0.06614    0.41831
- 11      50       2    0.04817    0.41184    0.04817    0.40667
- 11      72       3    0.04989    0.40839    0.05186    0.40963    0.05383    0.40839
- 11      72       3    0.04989    0.40839    0.05186    0.40938    0.05383    0.40839
- 11      94       4    0.05605    0.41086    0.05654    0.41110    0.05728    0.41184    0.05728    0.40667
- 11     116       5    0.06073    0.40716    0.06048    0.40692    0.06073    0.40667    0.06097    0.40692    0.06073    0.40716
- 11     336      15    0.06319    0.41184    0.06590    0.41184    0.06442    0.40987    0.06516    0.40987    0.06565    0.40963    0.06590    0.40938    0.06614    0.40864    0.06614    0.40815    0.06590    0.40741    0.06540    0.40692    0.06467    0.40667    0.06393    0.40667    0.06319    0.40692    0.06294    0.40716    0.06270    0.40766
- 11      50       2    0.04817    0.40021    0.04817    0.39504
- 11      72       3    0.04989    0.39676    0.05186    0.39799    0.05383    0.39676
- 11      72       3    0.04989    0.39676    0.05186    0.39775    0.05383    0.39676
- 11      94       4    0.05605    0.39922    0.05654    0.39947    0.05728    0.40021    0.05728    0.39504
- 11     116       5    0.06073    0.39553    0.06048    0.39528    0.06073    0.39504    0.06097    0.39528    0.06073    0.39553
- 11      72       3    0.06516    0.40021    0.06270    0.39676    0.06639    0.39676
- 11      50       2    0.06516    0.40021    0.06516    0.39504
  11      50       2    0.04817    0.38857    0.04817    0.38340
  11      72       3    0.04989    0.38513    0.05186    0.38636    0.05383    0.38513
  11      72       3    0.04989    0.38513    0.05186    0.38611    0.05383    0.38513
@@ -474,37 +413,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      94       4    0.10891    0.47434    0.11117    0.47887    0.11343    0.47434    0.10891    0.47434
  21       6       1
  25       6       1
- 11      50       2    0.04817    0.43511    0.04817    0.42994
- 11      72       3    0.04989    0.43166    0.05186    0.43289    0.05383    0.43166
- 11      72       3    0.04989    0.43166    0.05186    0.43265    0.05383    0.43166
- 11      94       4    0.05605    0.43413    0.05654    0.43437    0.05728    0.43511    0.05728    0.42994
- 11     116       5    0.06073    0.43043    0.06048    0.43019    0.06073    0.42994    0.06097    0.43019    0.06073    0.43043
- 11      94       4    0.06343    0.43413    0.06393    0.43437    0.06467    0.43511    0.06467    0.42994
- 11      50       2    0.04817    0.42348    0.04817    0.41831
- 11      72       3    0.04989    0.42003    0.05186    0.42126    0.05383    0.42003
- 11      72       3    0.04989    0.42003    0.05186    0.42101    0.05383    0.42003
- 11      94       4    0.05605    0.42249    0.05654    0.42274    0.05728    0.42348    0.05728    0.41831
- 11     116       5    0.06073    0.41880    0.06048    0.41855    0.06073    0.41831    0.06097    0.41855    0.06073    0.41880
- 11     314      14    0.06294    0.42225    0.06294    0.42249    0.06319    0.42298    0.06343    0.42323    0.06393    0.42348    0.06491    0.42348    0.06540    0.42323    0.06565    0.42298    0.06590    0.42249    0.06590    0.42200    0.06565    0.42151    0.06516    0.42077    0.06270    0.41831    0.06614    0.41831
- 11      50       2    0.04817    0.41184    0.04817    0.40667
- 11      72       3    0.04989    0.40839    0.05186    0.40963    0.05383    0.40839
- 11      72       3    0.04989    0.40839    0.05186    0.40938    0.05383    0.40839
- 11      94       4    0.05605    0.41086    0.05654    0.41110    0.05728    0.41184    0.05728    0.40667
- 11     116       5    0.06073    0.40716    0.06048    0.40692    0.06073    0.40667    0.06097    0.40692    0.06073    0.40716
- 11     336      15    0.06319    0.41184    0.06590    0.41184    0.06442    0.40987    0.06516    0.40987    0.06565    0.40963    0.06590    0.40938    0.06614    0.40864    0.06614    0.40815    0.06590    0.40741    0.06540    0.40692    0.06467    0.40667    0.06393    0.40667    0.06319    0.40692    0.06294    0.40716    0.06270    0.40766
- 11      50       2    0.04817    0.40021    0.04817    0.39504
- 11      72       3    0.04989    0.39676    0.05186    0.39799    0.05383    0.39676
- 11      72       3    0.04989    0.39676    0.05186    0.39775    0.05383    0.39676
- 11      94       4    0.05605    0.39922    0.05654    0.39947    0.05728    0.40021    0.05728    0.39504
- 11     116       5    0.06073    0.39553    0.06048    0.39528    0.06073    0.39504    0.06097    0.39528    0.06073    0.39553
- 11      72       3    0.06516    0.40021    0.06270    0.39676    0.06639    0.39676
- 11      50       2    0.06516    0.40021    0.06516    0.39504
- 11      50       2    0.04817    0.38857    0.04817    0.38340
- 11      72       3    0.04989    0.38513    0.05186    0.38636    0.05383    0.38513
- 11      72       3    0.04989    0.38513    0.05186    0.38611    0.05383    0.38513
- 11      94       4    0.05605    0.38759    0.05654    0.38783    0.05728    0.38857    0.05728    0.38340
- 11     116       5    0.06073    0.38390    0.06048    0.38365    0.06073    0.38340    0.06097    0.38365    0.06073    0.38390
- 11     380      17    0.06565    0.38857    0.06319    0.38857    0.06294    0.38636    0.06319    0.38660    0.06393    0.38685    0.06467    0.38685    0.06540    0.38660    0.06590    0.38611    0.06614    0.38537    0.06614    0.38488    0.06590    0.38414    0.06540    0.38365    0.06467    0.38340    0.06393    0.38340    0.06319    0.38365    0.06294    0.38390    0.06270    0.38439
  11      50       2    0.11713    0.47867    0.11713    0.47454
  11      72       3    0.11851    0.47592    0.12009    0.47690    0.12166    0.47592
  11      72       3    0.11851    0.47592    0.12009    0.47670    0.12166    0.47592
@@ -763,20 +671,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      50       2    0.53781    0.43511    0.54298    0.42994
  21       6       1
  25       6       1
- 11      50       2    0.57867    0.70593    0.58384    0.69817
- 11      50       2    0.58384    0.70593    0.57867    0.69817
- 11     116       5    0.59271    0.70335    0.59234    0.70298    0.59271    0.70261    0.59307    0.70298    0.59271    0.70335
- 11     116       5    0.59271    0.69891    0.59234    0.69854    0.59271    0.69817    0.59307    0.69854    0.59271    0.69891
- 11     380      17    0.60379    0.70593    0.60268    0.70556    0.60194    0.70445    0.60157    0.70261    0.60157    0.70150    0.60194    0.69965    0.60268    0.69854    0.60379    0.69817    0.60452    0.69817    0.60563    0.69854    0.60637    0.69965    0.60674    0.70150    0.60674    0.70261    0.60637    0.70445    0.60563    0.70556    0.60452    0.70593    0.60379    0.70593
- 11     116       5    0.60969    0.69891    0.60933    0.69854    0.60969    0.69817    0.61006    0.69854    0.60969    0.69891
- 11     380      17    0.61708    0.70593    0.61339    0.70593    0.61302    0.70261    0.61339    0.70298    0.61450    0.70335    0.61560    0.70335    0.61671    0.70298    0.61745    0.70224    0.61782    0.70113    0.61782    0.70039    0.61745    0.69928    0.61671    0.69854    0.61560    0.69817    0.61450    0.69817    0.61339    0.69854    0.61302    0.69891    0.61265    0.69965
- 11     116       5    0.62668    0.70593    0.62668    0.69965    0.62705    0.69854    0.62779    0.69817    0.62853    0.69817
- 11      50       2    0.62558    0.70335    0.62816    0.70335
- 11     380      17    0.63222    0.70335    0.63149    0.70298    0.63075    0.70224    0.63038    0.70113    0.63038    0.70039    0.63075    0.69928    0.63149    0.69854    0.63222    0.69817    0.63333    0.69817    0.63407    0.69854    0.63481    0.69928    0.63518    0.70039    0.63518    0.70113    0.63481    0.70224    0.63407    0.70298    0.63333    0.70335    0.63222    0.70335
- 11      94       4    0.64441    0.70445    0.64515    0.70482    0.64626    0.70593    0.64626    0.69817
- 11     380      17    0.65291    0.70593    0.65180    0.70556    0.65106    0.70445    0.65069    0.70261    0.65069    0.70150    0.65106    0.69965    0.65180    0.69854    0.65291    0.69817    0.65365    0.69817    0.65475    0.69854    0.65549    0.69965    0.65586    0.70150    0.65586    0.70261    0.65549    0.70445    0.65475    0.70556    0.65365    0.70593    0.65291    0.70593
- 11     116       5    0.65882    0.69891    0.65845    0.69854    0.65882    0.69817    0.65919    0.69854    0.65882    0.69891
- 11     380      17    0.66620    0.70593    0.66251    0.70593    0.66214    0.70261    0.66251    0.70298    0.66362    0.70335    0.66473    0.70335    0.66583    0.70298    0.66657    0.70224    0.66694    0.70113    0.66694    0.70039    0.66657    0.69928    0.66583    0.69854    0.66473    0.69817    0.66362    0.69817    0.66251    0.69854    0.66214    0.69891    0.66177    0.69965
  11      50       2    0.54817    0.43511    0.54817    0.42994
  11     226      10    0.54817    0.43511    0.55038    0.43511    0.55112    0.43486    0.55137    0.43462    0.55162    0.43413    0.55162    0.43363    0.55137    0.43314    0.55112    0.43289    0.55038    0.43265    0.54817    0.43265
  11      50       2    0.54989    0.43265    0.55162    0.42994
@@ -840,64 +734,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      72       3    0.50646    0.42089    0.50646    0.42089    0.54040    0.42089
  21       6       1
  25       6       1
- 11      50       2    0.57867    0.70593    0.58384    0.69817
- 11      50       2    0.58384    0.70593    0.57867    0.69817
- 11     116       5    0.59271    0.70335    0.59234    0.70298    0.59271    0.70261    0.59307    0.70298    0.59271    0.70335
- 11     116       5    0.59271    0.69891    0.59234    0.69854    0.59271    0.69817    0.59307    0.69854    0.59271    0.69891
- 11     380      17    0.60379    0.70593    0.60268    0.70556    0.60194    0.70445    0.60157    0.70261    0.60157    0.70150    0.60194    0.69965    0.60268    0.69854    0.60379    0.69817    0.60452    0.69817    0.60563    0.69854    0.60637    0.69965    0.60674    0.70150    0.60674    0.70261    0.60637    0.70445    0.60563    0.70556    0.60452    0.70593    0.60379    0.70593
- 11     116       5    0.60969    0.69891    0.60933    0.69854    0.60969    0.69817    0.61006    0.69854    0.60969    0.69891
- 11     380      17    0.61708    0.70593    0.61339    0.70593    0.61302    0.70261    0.61339    0.70298    0.61450    0.70335    0.61560    0.70335    0.61671    0.70298    0.61745    0.70224    0.61782    0.70113    0.61782    0.70039    0.61745    0.69928    0.61671    0.69854    0.61560    0.69817    0.61450    0.69817    0.61339    0.69854    0.61302    0.69891    0.61265    0.69965
- 11     116       5    0.62668    0.70593    0.62668    0.69965    0.62705    0.69854    0.62779    0.69817    0.62853    0.69817
- 11      50       2    0.62558    0.70335    0.62816    0.70335
- 11     380      17    0.63222    0.70335    0.63149    0.70298    0.63075    0.70224    0.63038    0.70113    0.63038    0.70039    0.63075    0.69928    0.63149    0.69854    0.63222    0.69817    0.63333    0.69817    0.63407    0.69854    0.63481    0.69928    0.63518    0.70039    0.63518    0.70113    0.63481    0.70224    0.63407    0.70298    0.63333    0.70335    0.63222    0.70335
- 11      94       4    0.64441    0.70445    0.64515    0.70482    0.64626    0.70593    0.64626    0.69817
- 11     380      17    0.65291    0.70593    0.65180    0.70556    0.65106    0.70445    0.65069    0.70261    0.65069    0.70150    0.65106    0.69965    0.65180    0.69854    0.65291    0.69817    0.65365    0.69817    0.65475    0.69854    0.65549    0.69965    0.65586    0.70150    0.65586    0.70261    0.65549    0.70445    0.65475    0.70556    0.65365    0.70593    0.65291    0.70593
- 11     116       5    0.65882    0.69891    0.65845    0.69854    0.65882    0.69817    0.65919    0.69854    0.65882    0.69891
- 11     380      17    0.66620    0.70593    0.66251    0.70593    0.66214    0.70261    0.66251    0.70298    0.66362    0.70335    0.66473    0.70335    0.66583    0.70298    0.66657    0.70224    0.66694    0.70113    0.66694    0.70039    0.66657    0.69928    0.66583    0.69854    0.66473    0.69817    0.66362    0.69817    0.66251    0.69854    0.66214    0.69891    0.66177    0.69965
- 11      50       2    0.54817    0.43511    0.54817    0.42994
- 11     226      10    0.54817    0.43511    0.55038    0.43511    0.55112    0.43486    0.55137    0.43462    0.55162    0.43413    0.55162    0.43363    0.55137    0.43314    0.55112    0.43289    0.55038    0.43265    0.54817    0.43265
- 11      50       2    0.54989    0.43265    0.55162    0.42994
- 11      50       2    0.55457    0.43511    0.55260    0.42994
- 11      50       2    0.55457    0.43511    0.55654    0.42994
- 11      50       2    0.55334    0.43166    0.55580    0.43166
- 11      50       2    0.55777    0.43511    0.55777    0.42994
- 11      50       2    0.55777    0.43511    0.56122    0.42994
- 11      50       2    0.56122    0.43511    0.56122    0.42994
- 11      50       2    0.56319    0.43511    0.56319    0.42994
- 11     270      12    0.56319    0.43511    0.56491    0.43511    0.56565    0.43486    0.56614    0.43437    0.56639    0.43388    0.56664    0.43314    0.56664    0.43191    0.56639    0.43117    0.56614    0.43068    0.56565    0.43019    0.56491    0.42994    0.56319    0.42994
- 11     226      10    0.56836    0.43511    0.56836    0.43142    0.56861    0.43068    0.56910    0.43019    0.56984    0.42994    0.57033    0.42994    0.57107    0.43019    0.57156    0.43068    0.57181    0.43142    0.57181    0.43511
- 11     226      10    0.57550    0.43610    0.57501    0.43560    0.57451    0.43486    0.57402    0.43388    0.57378    0.43265    0.57378    0.43166    0.57402    0.43043    0.57451    0.42945    0.57501    0.42871    0.57550    0.42822
- 11      50       2    0.57722    0.43511    0.57722    0.42994
- 11      50       2    0.57919    0.43610    0.57919    0.42822
- 11      50       2    0.57944    0.43610    0.57944    0.42822
- 11      50       2    0.57919    0.43610    0.58092    0.43610
- 11      50       2    0.57919    0.42822    0.58092    0.42822
- 11      50       2    0.58264    0.43511    0.58264    0.42994
- 11      50       2    0.58461    0.43289    0.58904    0.43289
- 11      50       2    0.58461    0.43142    0.58904    0.43142
- 11      94       4    0.59150    0.43413    0.59200    0.43437    0.59274    0.43511    0.59274    0.42994
- 11     116       5    0.59618    0.43339    0.59594    0.43314    0.59618    0.43289    0.59643    0.43314    0.59618    0.43339
- 11     116       5    0.59618    0.43043    0.59594    0.43019    0.59618    0.42994    0.59643    0.43019    0.59618    0.43043
- 11      94       4    0.59889    0.43413    0.59938    0.43437    0.60012    0.43511    0.60012    0.42994
- 11     380      17    0.60455    0.43511    0.60382    0.43486    0.60332    0.43413    0.60308    0.43289    0.60308    0.43216    0.60332    0.43092    0.60382    0.43019    0.60455    0.42994    0.60505    0.42994    0.60579    0.43019    0.60628    0.43092    0.60652    0.43216    0.60652    0.43289    0.60628    0.43413    0.60579    0.43486    0.60505    0.43511    0.60455    0.43511
- 11      50       2    0.60948    0.43610    0.60948    0.42822
- 11      50       2    0.60973    0.43610    0.60973    0.42822
- 11      50       2    0.60800    0.43610    0.60973    0.43610
- 11      50       2    0.60800    0.42822    0.60973    0.42822
- 11      50       2    0.61391    0.43437    0.61391    0.42994
- 11      50       2    0.61170    0.43216    0.61613    0.43216
- 11      94       4    0.61859    0.43413    0.61908    0.43437    0.61982    0.43511    0.61982    0.42994
- 11     380      17    0.62425    0.43511    0.62351    0.43486    0.62302    0.43413    0.62278    0.43289    0.62278    0.43216    0.62302    0.43092    0.62351    0.43019    0.62425    0.42994    0.62475    0.42994    0.62548    0.43019    0.62598    0.43092    0.62622    0.43216    0.62622    0.43289    0.62598    0.43413    0.62548    0.43486    0.62475    0.43511    0.62425    0.43511
- 11      50       2    0.63016    0.43437    0.63016    0.42994
- 11      50       2    0.62795    0.43216    0.63238    0.43216
- 11      50       2    0.63435    0.43511    0.63435    0.42994
- 11      50       2    0.63435    0.43511    0.63755    0.43511
- 11      50       2    0.63435    0.43265    0.63632    0.43265
- 11      50       2    0.63435    0.42994    0.63755    0.42994
- 11      50       2    0.63903    0.43511    0.63903    0.42994
- 11     226      10    0.63903    0.43511    0.64124    0.43511    0.64198    0.43486    0.64223    0.43462    0.64247    0.43413    0.64247    0.43339    0.64223    0.43289    0.64198    0.43265    0.64124    0.43240    0.63903    0.43240
- 11     446      20    0.64740    0.43437    0.64691    0.43486    0.64617    0.43511    0.64518    0.43511    0.64444    0.43486    0.64395    0.43437    0.64395    0.43388    0.64420    0.43339    0.64444    0.43314    0.64494    0.43289    0.64641    0.43240    0.64691    0.43216    0.64715    0.43191    0.64740    0.43142    0.64740    0.43068    0.64691    0.43019    0.64617    0.42994    0.64518    0.42994    0.64444    0.43019    0.64395    0.43068
- 11     226      10    0.64888    0.43610    0.64937    0.43560    0.64986    0.43486    0.65035    0.43388    0.65060    0.43265    0.65060    0.43166    0.65035    0.43043    0.64986    0.42945    0.64937    0.42871    0.64888    0.42822
  11      50       2    0.54817    0.42348    0.54817    0.41831
  11     226      10    0.54817    0.42348    0.55038    0.42348    0.55112    0.42323    0.55137    0.42298    0.55162    0.42249    0.55162    0.42200    0.55137    0.42151    0.55112    0.42126    0.55038    0.42101    0.54817    0.42101
  11      50       2    0.54989    0.42101    0.55162    0.41831
@@ -996,108 +832,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      50       2    0.53781    0.41184    0.54298    0.40667
  21       6       1
  25       6       1
- 11      50       2    0.57867    0.70593    0.58384    0.69817
- 11      50       2    0.58384    0.70593    0.57867    0.69817
- 11     116       5    0.59271    0.70335    0.59234    0.70298    0.59271    0.70261    0.59307    0.70298    0.59271    0.70335
- 11     116       5    0.59271    0.69891    0.59234    0.69854    0.59271    0.69817    0.59307    0.69854    0.59271    0.69891
- 11     380      17    0.60379    0.70593    0.60268    0.70556    0.60194    0.70445    0.60157    0.70261    0.60157    0.70150    0.60194    0.69965    0.60268    0.69854    0.60379    0.69817    0.60452    0.69817    0.60563    0.69854    0.60637    0.69965    0.60674    0.70150    0.60674    0.70261    0.60637    0.70445    0.60563    0.70556    0.60452    0.70593    0.60379    0.70593
- 11     116       5    0.60969    0.69891    0.60933    0.69854    0.60969    0.69817    0.61006    0.69854    0.60969    0.69891
- 11     380      17    0.61708    0.70593    0.61339    0.70593    0.61302    0.70261    0.61339    0.70298    0.61450    0.70335    0.61560    0.70335    0.61671    0.70298    0.61745    0.70224    0.61782    0.70113    0.61782    0.70039    0.61745    0.69928    0.61671    0.69854    0.61560    0.69817    0.61450    0.69817    0.61339    0.69854    0.61302    0.69891    0.61265    0.69965
- 11     116       5    0.62668    0.70593    0.62668    0.69965    0.62705    0.69854    0.62779    0.69817    0.62853    0.69817
- 11      50       2    0.62558    0.70335    0.62816    0.70335
- 11     380      17    0.63222    0.70335    0.63149    0.70298    0.63075    0.70224    0.63038    0.70113    0.63038    0.70039    0.63075    0.69928    0.63149    0.69854    0.63222    0.69817    0.63333    0.69817    0.63407    0.69854    0.63481    0.69928    0.63518    0.70039    0.63518    0.70113    0.63481    0.70224    0.63407    0.70298    0.63333    0.70335    0.63222    0.70335
- 11      94       4    0.64441    0.70445    0.64515    0.70482    0.64626    0.70593    0.64626    0.69817
- 11     380      17    0.65291    0.70593    0.65180    0.70556    0.65106    0.70445    0.65069    0.70261    0.65069    0.70150    0.65106    0.69965    0.65180    0.69854    0.65291    0.69817    0.65365    0.69817    0.65475    0.69854    0.65549    0.69965    0.65586    0.70150    0.65586    0.70261    0.65549    0.70445    0.65475    0.70556    0.65365    0.70593    0.65291    0.70593
- 11     116       5    0.65882    0.69891    0.65845    0.69854    0.65882    0.69817    0.65919    0.69854    0.65882    0.69891
- 11     380      17    0.66620    0.70593    0.66251    0.70593    0.66214    0.70261    0.66251    0.70298    0.66362    0.70335    0.66473    0.70335    0.66583    0.70298    0.66657    0.70224    0.66694    0.70113    0.66694    0.70039    0.66657    0.69928    0.66583    0.69854    0.66473    0.69817    0.66362    0.69817    0.66251    0.69854    0.66214    0.69891    0.66177    0.69965
- 11      50       2    0.54817    0.43511    0.54817    0.42994
- 11     226      10    0.54817    0.43511    0.55038    0.43511    0.55112    0.43486    0.55137    0.43462    0.55162    0.43413    0.55162    0.43363    0.55137    0.43314    0.55112    0.43289    0.55038    0.43265    0.54817    0.43265
- 11      50       2    0.54989    0.43265    0.55162    0.42994
- 11      50       2    0.55457    0.43511    0.55260    0.42994
- 11      50       2    0.55457    0.43511    0.55654    0.42994
- 11      50       2    0.55334    0.43166    0.55580    0.43166
- 11      50       2    0.55777    0.43511    0.55777    0.42994
- 11      50       2    0.55777    0.43511    0.56122    0.42994
- 11      50       2    0.56122    0.43511    0.56122    0.42994
- 11      50       2    0.56319    0.43511    0.56319    0.42994
- 11     270      12    0.56319    0.43511    0.56491    0.43511    0.56565    0.43486    0.56614    0.43437    0.56639    0.43388    0.56664    0.43314    0.56664    0.43191    0.56639    0.43117    0.56614    0.43068    0.56565    0.43019    0.56491    0.42994    0.56319    0.42994
- 11     226      10    0.56836    0.43511    0.56836    0.43142    0.56861    0.43068    0.56910    0.43019    0.56984    0.42994    0.57033    0.42994    0.57107    0.43019    0.57156    0.43068    0.57181    0.43142    0.57181    0.43511
- 11     226      10    0.57550    0.43610    0.57501    0.43560    0.57451    0.43486    0.57402    0.43388    0.57378    0.43265    0.57378    0.43166    0.57402    0.43043    0.57451    0.42945    0.57501    0.42871    0.57550    0.42822
- 11      50       2    0.57722    0.43511    0.57722    0.42994
- 11      50       2    0.57919    0.43610    0.57919    0.42822
- 11      50       2    0.57944    0.43610    0.57944    0.42822
- 11      50       2    0.57919    0.43610    0.58092    0.43610
- 11      50       2    0.57919    0.42822    0.58092    0.42822
- 11      50       2    0.58264    0.43511    0.58264    0.42994
- 11      50       2    0.58461    0.43289    0.58904    0.43289
- 11      50       2    0.58461    0.43142    0.58904    0.43142
- 11      94       4    0.59150    0.43413    0.59200    0.43437    0.59274    0.43511    0.59274    0.42994
- 11     116       5    0.59618    0.43339    0.59594    0.43314    0.59618    0.43289    0.59643    0.43314    0.59618    0.43339
- 11     116       5    0.59618    0.43043    0.59594    0.43019    0.59618    0.42994    0.59643    0.43019    0.59618    0.43043
- 11      94       4    0.59889    0.43413    0.59938    0.43437    0.60012    0.43511    0.60012    0.42994
- 11     380      17    0.60455    0.43511    0.60382    0.43486    0.60332    0.43413    0.60308    0.43289    0.60308    0.43216    0.60332    0.43092    0.60382    0.43019    0.60455    0.42994    0.60505    0.42994    0.60579    0.43019    0.60628    0.43092    0.60652    0.43216    0.60652    0.43289    0.60628    0.43413    0.60579    0.43486    0.60505    0.43511    0.60455    0.43511
- 11      50       2    0.60948    0.43610    0.60948    0.42822
- 11      50       2    0.60973    0.43610    0.60973    0.42822
- 11      50       2    0.60800    0.43610    0.60973    0.43610
- 11      50       2    0.60800    0.42822    0.60973    0.42822
- 11      50       2    0.61391    0.43437    0.61391    0.42994
- 11      50       2    0.61170    0.43216    0.61613    0.43216
- 11      94       4    0.61859    0.43413    0.61908    0.43437    0.61982    0.43511    0.61982    0.42994
- 11     380      17    0.62425    0.43511    0.62351    0.43486    0.62302    0.43413    0.62278    0.43289    0.62278    0.43216    0.62302    0.43092    0.62351    0.43019    0.62425    0.42994    0.62475    0.42994    0.62548    0.43019    0.62598    0.43092    0.62622    0.43216    0.62622    0.43289    0.62598    0.43413    0.62548    0.43486    0.62475    0.43511    0.62425    0.43511
- 11      50       2    0.63016    0.43437    0.63016    0.42994
- 11      50       2    0.62795    0.43216    0.63238    0.43216
- 11      50       2    0.63435    0.43511    0.63435    0.42994
- 11      50       2    0.63435    0.43511    0.63755    0.43511
- 11      50       2    0.63435    0.43265    0.63632    0.43265
- 11      50       2    0.63435    0.42994    0.63755    0.42994
- 11      50       2    0.63903    0.43511    0.63903    0.42994
- 11     226      10    0.63903    0.43511    0.64124    0.43511    0.64198    0.43486    0.64223    0.43462    0.64247    0.43413    0.64247    0.43339    0.64223    0.43289    0.64198    0.43265    0.64124    0.43240    0.63903    0.43240
- 11     446      20    0.64740    0.43437    0.64691    0.43486    0.64617    0.43511    0.64518    0.43511    0.64444    0.43486    0.64395    0.43437    0.64395    0.43388    0.64420    0.43339    0.64444    0.43314    0.64494    0.43289    0.64641    0.43240    0.64691    0.43216    0.64715    0.43191    0.64740    0.43142    0.64740    0.43068    0.64691    0.43019    0.64617    0.42994    0.64518    0.42994    0.64444    0.43019    0.64395    0.43068
- 11     226      10    0.64888    0.43610    0.64937    0.43560    0.64986    0.43486    0.65035    0.43388    0.65060    0.43265    0.65060    0.43166    0.65035    0.43043    0.64986    0.42945    0.64937    0.42871    0.64888    0.42822
- 11      50       2    0.54817    0.42348    0.54817    0.41831
- 11     226      10    0.54817    0.42348    0.55038    0.42348    0.55112    0.42323    0.55137    0.42298    0.55162    0.42249    0.55162    0.42200    0.55137    0.42151    0.55112    0.42126    0.55038    0.42101    0.54817    0.42101
- 11      50       2    0.54989    0.42101    0.55162    0.41831
- 11      50       2    0.55457    0.42348    0.55260    0.41831
- 11      50       2    0.55457    0.42348    0.55654    0.41831
- 11      50       2    0.55334    0.42003    0.55580    0.42003
- 11      50       2    0.55777    0.42348    0.55777    0.41831
- 11      50       2    0.55777    0.42348    0.56122    0.41831
- 11      50       2    0.56122    0.42348    0.56122    0.41831
- 11      50       2    0.56319    0.42348    0.56319    0.41831
- 11     270      12    0.56319    0.42348    0.56491    0.42348    0.56565    0.42323    0.56614    0.42274    0.56639    0.42225    0.56664    0.42151    0.56664    0.42028    0.56639    0.41954    0.56614    0.41904    0.56565    0.41855    0.56491    0.41831    0.56319    0.41831
- 11     226      10    0.56836    0.42348    0.56836    0.41978    0.56861    0.41904    0.56910    0.41855    0.56984    0.41831    0.57033    0.41831    0.57107    0.41855    0.57156    0.41904    0.57181    0.41978    0.57181    0.42348
- 11     226      10    0.57550    0.42446    0.57501    0.42397    0.57451    0.42323    0.57402    0.42225    0.57378    0.42101    0.57378    0.42003    0.57402    0.41880    0.57451    0.41781    0.57501    0.41707    0.57550    0.41658
- 11      50       2    0.57722    0.42348    0.57722    0.41831
- 11      50       2    0.57919    0.42446    0.57919    0.41658
- 11      50       2    0.57944    0.42446    0.57944    0.41658
- 11      50       2    0.57919    0.42446    0.58092    0.42446
- 11      50       2    0.57919    0.41658    0.58092    0.41658
- 11      50       2    0.58264    0.42348    0.58264    0.41831
- 11      50       2    0.58461    0.42126    0.58904    0.42126
- 11      50       2    0.58461    0.41978    0.58904    0.41978
- 11      94       4    0.59150    0.42249    0.59200    0.42274    0.59274    0.42348    0.59274    0.41831
- 11     116       5    0.59618    0.42175    0.59594    0.42151    0.59618    0.42126    0.59643    0.42151    0.59618    0.42175
- 11     116       5    0.59618    0.41880    0.59594    0.41855    0.59618    0.41831    0.59643    0.41855    0.59618    0.41880
- 11      94       4    0.59889    0.42249    0.59938    0.42274    0.60012    0.42348    0.60012    0.41831
- 11     380      17    0.60455    0.42348    0.60382    0.42323    0.60332    0.42249    0.60308    0.42126    0.60308    0.42052    0.60332    0.41929    0.60382    0.41855    0.60455    0.41831    0.60505    0.41831    0.60579    0.41855    0.60628    0.41929    0.60652    0.42052    0.60652    0.42126    0.60628    0.42249    0.60579    0.42323    0.60505    0.42348    0.60455    0.42348
- 11      50       2    0.60948    0.42446    0.60948    0.41658
- 11      50       2    0.60973    0.42446    0.60973    0.41658
- 11      50       2    0.60800    0.42446    0.60973    0.42446
- 11      50       2    0.60800    0.41658    0.60973    0.41658
- 11      50       2    0.61391    0.42274    0.61391    0.41831
- 11      50       2    0.61170    0.42052    0.61613    0.42052
- 11      94       4    0.61859    0.42249    0.61908    0.42274    0.61982    0.42348    0.61982    0.41831
- 11     380      17    0.62425    0.42348    0.62351    0.42323    0.62302    0.42249    0.62278    0.42126    0.62278    0.42052    0.62302    0.41929    0.62351    0.41855    0.62425    0.41831    0.62475    0.41831    0.62548    0.41855    0.62598    0.41929    0.62622    0.42052    0.62622    0.42126    0.62598    0.42249    0.62548    0.42323    0.62475    0.42348    0.62425    0.42348
- 11      50       2    0.63016    0.42274    0.63016    0.41831
- 11      50       2    0.62795    0.42052    0.63238    0.42052
- 11      50       2    0.63435    0.42348    0.63435    0.41831
- 11      50       2    0.63435    0.42348    0.63755    0.42348
- 11      50       2    0.63435    0.42101    0.63632    0.42101
- 11      50       2    0.63435    0.41831    0.63755    0.41831
- 11      50       2    0.63903    0.42348    0.63903    0.41831
- 11     226      10    0.63903    0.42348    0.64124    0.42348    0.64198    0.42323    0.64223    0.42298    0.64247    0.42249    0.64247    0.42175    0.64223    0.42126    0.64198    0.42101    0.64124    0.42077    0.63903    0.42077
- 11     446      20    0.64740    0.42274    0.64691    0.42323    0.64617    0.42348    0.64518    0.42348    0.64444    0.42323    0.64395    0.42274    0.64395    0.42225    0.64420    0.42175    0.64444    0.42151    0.64494    0.42126    0.64641    0.42077    0.64691    0.42052    0.64715    0.42028    0.64740    0.41978    0.64740    0.41904    0.64691    0.41855    0.64617    0.41831    0.64518    0.41831    0.64444    0.41855    0.64395    0.41904
- 11     226      10    0.64888    0.42446    0.64937    0.42397    0.64986    0.42323    0.65035    0.42225    0.65060    0.42101    0.65060    0.42003    0.65035    0.41880    0.64986    0.41781    0.64937    0.41707    0.64888    0.41658
  11      50       2    0.54817    0.41184    0.54817    0.40667
  11     226      10    0.54817    0.41184    0.55038    0.41184    0.55112    0.41160    0.55137    0.41135    0.55162    0.41086    0.55162    0.41036    0.55137    0.40987    0.55112    0.40963    0.55038    0.40938    0.54817    0.40938
  11      50       2    0.54989    0.40938    0.55162    0.40667
@@ -1178,152 +912,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11     116       5    0.53910    0.39633    0.54169    0.39633    0.54169    0.39891    0.53910    0.39891    0.53910    0.39633
  21       6       1
  25       6       1
- 11      50       2    0.57867    0.70593    0.58384    0.69817
- 11      50       2    0.58384    0.70593    0.57867    0.69817
- 11     116       5    0.59271    0.70335    0.59234    0.70298    0.59271    0.70261    0.59307    0.70298    0.59271    0.70335
- 11     116       5    0.59271    0.69891    0.59234    0.69854    0.59271    0.69817    0.59307    0.69854    0.59271    0.69891
- 11     380      17    0.60379    0.70593    0.60268    0.70556    0.60194    0.70445    0.60157    0.70261    0.60157    0.70150    0.60194    0.69965    0.60268    0.69854    0.60379    0.69817    0.60452    0.69817    0.60563    0.69854    0.60637    0.69965    0.60674    0.70150    0.60674    0.70261    0.60637    0.70445    0.60563    0.70556    0.60452    0.70593    0.60379    0.70593
- 11     116       5    0.60969    0.69891    0.60933    0.69854    0.60969    0.69817    0.61006    0.69854    0.60969    0.69891
- 11     380      17    0.61708    0.70593    0.61339    0.70593    0.61302    0.70261    0.61339    0.70298    0.61450    0.70335    0.61560    0.70335    0.61671    0.70298    0.61745    0.70224    0.61782    0.70113    0.61782    0.70039    0.61745    0.69928    0.61671    0.69854    0.61560    0.69817    0.61450    0.69817    0.61339    0.69854    0.61302    0.69891    0.61265    0.69965
- 11     116       5    0.62668    0.70593    0.62668    0.69965    0.62705    0.69854    0.62779    0.69817    0.62853    0.69817
- 11      50       2    0.62558    0.70335    0.62816    0.70335
- 11     380      17    0.63222    0.70335    0.63149    0.70298    0.63075    0.70224    0.63038    0.70113    0.63038    0.70039    0.63075    0.69928    0.63149    0.69854    0.63222    0.69817    0.63333    0.69817    0.63407    0.69854    0.63481    0.69928    0.63518    0.70039    0.63518    0.70113    0.63481    0.70224    0.63407    0.70298    0.63333    0.70335    0.63222    0.70335
- 11      94       4    0.64441    0.70445    0.64515    0.70482    0.64626    0.70593    0.64626    0.69817
- 11     380      17    0.65291    0.70593    0.65180    0.70556    0.65106    0.70445    0.65069    0.70261    0.65069    0.70150    0.65106    0.69965    0.65180    0.69854    0.65291    0.69817    0.65365    0.69817    0.65475    0.69854    0.65549    0.69965    0.65586    0.70150    0.65586    0.70261    0.65549    0.70445    0.65475    0.70556    0.65365    0.70593    0.65291    0.70593
- 11     116       5    0.65882    0.69891    0.65845    0.69854    0.65882    0.69817    0.65919    0.69854    0.65882    0.69891
- 11     380      17    0.66620    0.70593    0.66251    0.70593    0.66214    0.70261    0.66251    0.70298    0.66362    0.70335    0.66473    0.70335    0.66583    0.70298    0.66657    0.70224    0.66694    0.70113    0.66694    0.70039    0.66657    0.69928    0.66583    0.69854    0.66473    0.69817    0.66362    0.69817    0.66251    0.69854    0.66214    0.69891    0.66177    0.69965
- 11      50       2    0.54817    0.43511    0.54817    0.42994
- 11     226      10    0.54817    0.43511    0.55038    0.43511    0.55112    0.43486    0.55137    0.43462    0.55162    0.43413    0.55162    0.43363    0.55137    0.43314    0.55112    0.43289    0.55038    0.43265    0.54817    0.43265
- 11      50       2    0.54989    0.43265    0.55162    0.42994
- 11      50       2    0.55457    0.43511    0.55260    0.42994
- 11      50       2    0.55457    0.43511    0.55654    0.42994
- 11      50       2    0.55334    0.43166    0.55580    0.43166
- 11      50       2    0.55777    0.43511    0.55777    0.42994
- 11      50       2    0.55777    0.43511    0.56122    0.42994
- 11      50       2    0.56122    0.43511    0.56122    0.42994
- 11      50       2    0.56319    0.43511    0.56319    0.42994
- 11     270      12    0.56319    0.43511    0.56491    0.43511    0.56565    0.43486    0.56614    0.43437    0.56639    0.43388    0.56664    0.43314    0.56664    0.43191    0.56639    0.43117    0.56614    0.43068    0.56565    0.43019    0.56491    0.42994    0.56319    0.42994
- 11     226      10    0.56836    0.43511    0.56836    0.43142    0.56861    0.43068    0.56910    0.43019    0.56984    0.42994    0.57033    0.42994    0.57107    0.43019    0.57156    0.43068    0.57181    0.43142    0.57181    0.43511
- 11     226      10    0.57550    0.43610    0.57501    0.43560    0.57451    0.43486    0.57402    0.43388    0.57378    0.43265    0.57378    0.43166    0.57402    0.43043    0.57451    0.42945    0.57501    0.42871    0.57550    0.42822
- 11      50       2    0.57722    0.43511    0.57722    0.42994
- 11      50       2    0.57919    0.43610    0.57919    0.42822
- 11      50       2    0.57944    0.43610    0.57944    0.42822
- 11      50       2    0.57919    0.43610    0.58092    0.43610
- 11      50       2    0.57919    0.42822    0.58092    0.42822
- 11      50       2    0.58264    0.43511    0.58264    0.42994
- 11      50       2    0.58461    0.43289    0.58904    0.43289
- 11      50       2    0.58461    0.43142    0.58904    0.43142
- 11      94       4    0.59150    0.43413    0.59200    0.43437    0.59274    0.43511    0.59274    0.42994
- 11     116       5    0.59618    0.43339    0.59594    0.43314    0.59618    0.43289    0.59643    0.43314    0.59618    0.43339
- 11     116       5    0.59618    0.43043    0.59594    0.43019    0.59618    0.42994    0.59643    0.43019    0.59618    0.43043
- 11      94       4    0.59889    0.43413    0.59938    0.43437    0.60012    0.43511    0.60012    0.42994
- 11     380      17    0.60455    0.43511    0.60382    0.43486    0.60332    0.43413    0.60308    0.43289    0.60308    0.43216    0.60332    0.43092    0.60382    0.43019    0.60455    0.42994    0.60505    0.42994    0.60579    0.43019    0.60628    0.43092    0.60652    0.43216    0.60652    0.43289    0.60628    0.43413    0.60579    0.43486    0.60505    0.43511    0.60455    0.43511
- 11      50       2    0.60948    0.43610    0.60948    0.42822
- 11      50       2    0.60973    0.43610    0.60973    0.42822
- 11      50       2    0.60800    0.43610    0.60973    0.43610
- 11      50       2    0.60800    0.42822    0.60973    0.42822
- 11      50       2    0.61391    0.43437    0.61391    0.42994
- 11      50       2    0.61170    0.43216    0.61613    0.43216
- 11      94       4    0.61859    0.43413    0.61908    0.43437    0.61982    0.43511    0.61982    0.42994
- 11     380      17    0.62425    0.43511    0.62351    0.43486    0.62302    0.43413    0.62278    0.43289    0.62278    0.43216    0.62302    0.43092    0.62351    0.43019    0.62425    0.42994    0.62475    0.42994    0.62548    0.43019    0.62598    0.43092    0.62622    0.43216    0.62622    0.43289    0.62598    0.43413    0.62548    0.43486    0.62475    0.43511    0.62425    0.43511
- 11      50       2    0.63016    0.43437    0.63016    0.42994
- 11      50       2    0.62795    0.43216    0.63238    0.43216
- 11      50       2    0.63435    0.43511    0.63435    0.42994
- 11      50       2    0.63435    0.43511    0.63755    0.43511
- 11      50       2    0.63435    0.43265    0.63632    0.43265
- 11      50       2    0.63435    0.42994    0.63755    0.42994
- 11      50       2    0.63903    0.43511    0.63903    0.42994
- 11     226      10    0.63903    0.43511    0.64124    0.43511    0.64198    0.43486    0.64223    0.43462    0.64247    0.43413    0.64247    0.43339    0.64223    0.43289    0.64198    0.43265    0.64124    0.43240    0.63903    0.43240
- 11     446      20    0.64740    0.43437    0.64691    0.43486    0.64617    0.43511    0.64518    0.43511    0.64444    0.43486    0.64395    0.43437    0.64395    0.43388    0.64420    0.43339    0.64444    0.43314    0.64494    0.43289    0.64641    0.43240    0.64691    0.43216    0.64715    0.43191    0.64740    0.43142    0.64740    0.43068    0.64691    0.43019    0.64617    0.42994    0.64518    0.42994    0.64444    0.43019    0.64395    0.43068
- 11     226      10    0.64888    0.43610    0.64937    0.43560    0.64986    0.43486    0.65035    0.43388    0.65060    0.43265    0.65060    0.43166    0.65035    0.43043    0.64986    0.42945    0.64937    0.42871    0.64888    0.42822
- 11      50       2    0.54817    0.42348    0.54817    0.41831
- 11     226      10    0.54817    0.42348    0.55038    0.42348    0.55112    0.42323    0.55137    0.42298    0.55162    0.42249    0.55162    0.42200    0.55137    0.42151    0.55112    0.42126    0.55038    0.42101    0.54817    0.42101
- 11      50       2    0.54989    0.42101    0.55162    0.41831
- 11      50       2    0.55457    0.42348    0.55260    0.41831
- 11      50       2    0.55457    0.42348    0.55654    0.41831
- 11      50       2    0.55334    0.42003    0.55580    0.42003
- 11      50       2    0.55777    0.42348    0.55777    0.41831
- 11      50       2    0.55777    0.42348    0.56122    0.41831
- 11      50       2    0.56122    0.42348    0.56122    0.41831
- 11      50       2    0.56319    0.42348    0.56319    0.41831
- 11     270      12    0.56319    0.42348    0.56491    0.42348    0.56565    0.42323    0.56614    0.42274    0.56639    0.42225    0.56664    0.42151    0.56664    0.42028    0.56639    0.41954    0.56614    0.41904    0.56565    0.41855    0.56491    0.41831    0.56319    0.41831
- 11     226      10    0.56836    0.42348    0.56836    0.41978    0.56861    0.41904    0.56910    0.41855    0.56984    0.41831    0.57033    0.41831    0.57107    0.41855    0.57156    0.41904    0.57181    0.41978    0.57181    0.42348
- 11     226      10    0.57550    0.42446    0.57501    0.42397    0.57451    0.42323    0.57402    0.42225    0.57378    0.42101    0.57378    0.42003    0.57402    0.41880    0.57451    0.41781    0.57501    0.41707    0.57550    0.41658
- 11      50       2    0.57722    0.42348    0.57722    0.41831
- 11      50       2    0.57919    0.42446    0.57919    0.41658
- 11      50       2    0.57944    0.42446    0.57944    0.41658
- 11      50       2    0.57919    0.42446    0.58092    0.42446
- 11      50       2    0.57919    0.41658    0.58092    0.41658
- 11      50       2    0.58264    0.42348    0.58264    0.41831
- 11      50       2    0.58461    0.42126    0.58904    0.42126
- 11      50       2    0.58461    0.41978    0.58904    0.41978
- 11      94       4    0.59150    0.42249    0.59200    0.42274    0.59274    0.42348    0.59274    0.41831
- 11     116       5    0.59618    0.42175    0.59594    0.42151    0.59618    0.42126    0.59643    0.42151    0.59618    0.42175
- 11     116       5    0.59618    0.41880    0.59594    0.41855    0.59618    0.41831    0.59643    0.41855    0.59618    0.41880
- 11      94       4    0.59889    0.42249    0.59938    0.42274    0.60012    0.42348    0.60012    0.41831
- 11     380      17    0.60455    0.42348    0.60382    0.42323    0.60332    0.42249    0.60308    0.42126    0.60308    0.42052    0.60332    0.41929    0.60382    0.41855    0.60455    0.41831    0.60505    0.41831    0.60579    0.41855    0.60628    0.41929    0.60652    0.42052    0.60652    0.42126    0.60628    0.42249    0.60579    0.42323    0.60505    0.42348    0.60455    0.42348
- 11      50       2    0.60948    0.42446    0.60948    0.41658
- 11      50       2    0.60973    0.42446    0.60973    0.41658
- 11      50       2    0.60800    0.42446    0.60973    0.42446
- 11      50       2    0.60800    0.41658    0.60973    0.41658
- 11      50       2    0.61391    0.42274    0.61391    0.41831
- 11      50       2    0.61170    0.42052    0.61613    0.42052
- 11      94       4    0.61859    0.42249    0.61908    0.42274    0.61982    0.42348    0.61982    0.41831
- 11     380      17    0.62425    0.42348    0.62351    0.42323    0.62302    0.42249    0.62278    0.42126    0.62278    0.42052    0.62302    0.41929    0.62351    0.41855    0.62425    0.41831    0.62475    0.41831    0.62548    0.41855    0.62598    0.41929    0.62622    0.42052    0.62622    0.42126    0.62598    0.42249    0.62548    0.42323    0.62475    0.42348    0.62425    0.42348
- 11      50       2    0.63016    0.42274    0.63016    0.41831
- 11      50       2    0.62795    0.42052    0.63238    0.42052
- 11      50       2    0.63435    0.42348    0.63435    0.41831
- 11      50       2    0.63435    0.42348    0.63755    0.42348
- 11      50       2    0.63435    0.42101    0.63632    0.42101
- 11      50       2    0.63435    0.41831    0.63755    0.41831
- 11      50       2    0.63903    0.42348    0.63903    0.41831
- 11     226      10    0.63903    0.42348    0.64124    0.42348    0.64198    0.42323    0.64223    0.42298    0.64247    0.42249    0.64247    0.42175    0.64223    0.42126    0.64198    0.42101    0.64124    0.42077    0.63903    0.42077
- 11     446      20    0.64740    0.42274    0.64691    0.42323    0.64617    0.42348    0.64518    0.42348    0.64444    0.42323    0.64395    0.42274    0.64395    0.42225    0.64420    0.42175    0.64444    0.42151    0.64494    0.42126    0.64641    0.42077    0.64691    0.42052    0.64715    0.42028    0.64740    0.41978    0.64740    0.41904    0.64691    0.41855    0.64617    0.41831    0.64518    0.41831    0.64444    0.41855    0.64395    0.41904
- 11     226      10    0.64888    0.42446    0.64937    0.42397    0.64986    0.42323    0.65035    0.42225    0.65060    0.42101    0.65060    0.42003    0.65035    0.41880    0.64986    0.41781    0.64937    0.41707    0.64888    0.41658
- 11      50       2    0.54817    0.41184    0.54817    0.40667
- 11     226      10    0.54817    0.41184    0.55038    0.41184    0.55112    0.41160    0.55137    0.41135    0.55162    0.41086    0.55162    0.41036    0.55137    0.40987    0.55112    0.40963    0.55038    0.40938    0.54817    0.40938
- 11      50       2    0.54989    0.40938    0.55162    0.40667
- 11      50       2    0.55457    0.41184    0.55260    0.40667
- 11      50       2    0.55457    0.41184    0.55654    0.40667
- 11      50       2    0.55334    0.40839    0.55580    0.40839
- 11      50       2    0.55777    0.41184    0.55777    0.40667
- 11      50       2    0.55777    0.41184    0.56122    0.40667
- 11      50       2    0.56122    0.41184    0.56122    0.40667
- 11      50       2    0.56319    0.41184    0.56319    0.40667
- 11     270      12    0.56319    0.41184    0.56491    0.41184    0.56565    0.41160    0.56614    0.41110    0.56639    0.41061    0.56664    0.40987    0.56664    0.40864    0.56639    0.40790    0.56614    0.40741    0.56565    0.40692    0.56491    0.40667    0.56319    0.40667
- 11     226      10    0.56836    0.41184    0.56836    0.40815    0.56861    0.40741    0.56910    0.40692    0.56984    0.40667    0.57033    0.40667    0.57107    0.40692    0.57156    0.40741    0.57181    0.40815    0.57181    0.41184
- 11     226      10    0.57550    0.41283    0.57501    0.41233    0.57451    0.41160    0.57402    0.41061    0.57378    0.40938    0.57378    0.40839    0.57402    0.40716    0.57451    0.40618    0.57501    0.40544    0.57550    0.40495
- 11      50       2    0.57722    0.41184    0.57722    0.40667
- 11      50       2    0.57919    0.41283    0.57919    0.40495
- 11      50       2    0.57944    0.41283    0.57944    0.40495
- 11      50       2    0.57919    0.41283    0.58092    0.41283
- 11      50       2    0.57919    0.40495    0.58092    0.40495
- 11      50       2    0.58264    0.41184    0.58264    0.40667
- 11      50       2    0.58461    0.40963    0.58904    0.40963
- 11      50       2    0.58461    0.40815    0.58904    0.40815
- 11      94       4    0.59150    0.41086    0.59200    0.41110    0.59274    0.41184    0.59274    0.40667
- 11     116       5    0.59618    0.41012    0.59594    0.40987    0.59618    0.40963    0.59643    0.40987    0.59618    0.41012
- 11     116       5    0.59618    0.40716    0.59594    0.40692    0.59618    0.40667    0.59643    0.40692    0.59618    0.40716
- 11      94       4    0.59889    0.41086    0.59938    0.41110    0.60012    0.41184    0.60012    0.40667
- 11     380      17    0.60455    0.41184    0.60382    0.41160    0.60332    0.41086    0.60308    0.40963    0.60308    0.40889    0.60332    0.40766    0.60382    0.40692    0.60455    0.40667    0.60505    0.40667    0.60579    0.40692    0.60628    0.40766    0.60652    0.40889    0.60652    0.40963    0.60628    0.41086    0.60579    0.41160    0.60505    0.41184    0.60455    0.41184
- 11      50       2    0.60948    0.41283    0.60948    0.40495
- 11      50       2    0.60973    0.41283    0.60973    0.40495
- 11      50       2    0.60800    0.41283    0.60973    0.41283
- 11      50       2    0.60800    0.40495    0.60973    0.40495
- 11      50       2    0.61391    0.41110    0.61391    0.40667
- 11      50       2    0.61170    0.40889    0.61613    0.40889
- 11      94       4    0.61859    0.41086    0.61908    0.41110    0.61982    0.41184    0.61982    0.40667
- 11     380      17    0.62425    0.41184    0.62351    0.41160    0.62302    0.41086    0.62278    0.40963    0.62278    0.40889    0.62302    0.40766    0.62351    0.40692    0.62425    0.40667    0.62475    0.40667    0.62548    0.40692    0.62598    0.40766    0.62622    0.40889    0.62622    0.40963    0.62598    0.41086    0.62548    0.41160    0.62475    0.41184    0.62425    0.41184
- 11      50       2    0.63016    0.41110    0.63016    0.40667
- 11      50       2    0.62795    0.40889    0.63238    0.40889
- 11      50       2    0.63435    0.41184    0.63435    0.40667
- 11      50       2    0.63435    0.41184    0.63755    0.41184
- 11      50       2    0.63435    0.40938    0.63632    0.40938
- 11      50       2    0.63435    0.40667    0.63755    0.40667
- 11      50       2    0.63903    0.41184    0.63903    0.40667
- 11     226      10    0.63903    0.41184    0.64124    0.41184    0.64198    0.41160    0.64223    0.41135    0.64247    0.41086    0.64247    0.41012    0.64223    0.40963    0.64198    0.40938    0.64124    0.40913    0.63903    0.40913
- 11     446      20    0.64740    0.41110    0.64691    0.41160    0.64617    0.41184    0.64518    0.41184    0.64444    0.41160    0.64395    0.41110    0.64395    0.41061    0.64420    0.41012    0.64444    0.40987    0.64494    0.40963    0.64641    0.40913    0.64691    0.40889    0.64715    0.40864    0.64740    0.40815    0.64740    0.40741    0.64691    0.40692    0.64617    0.40667    0.64518    0.40667    0.64444    0.40692    0.64395    0.40741
- 11     226      10    0.64888    0.41283    0.64937    0.41233    0.64986    0.41160    0.65035    0.41061    0.65060    0.40938    0.65060    0.40839    0.65035    0.40716    0.64986    0.40618    0.64937    0.40544    0.64888    0.40495
  11      50       2    0.54817    0.40021    0.54817    0.39504
  11     226      10    0.54817    0.40021    0.55038    0.40021    0.55112    0.39996    0.55137    0.39972    0.55162    0.39922    0.55162    0.39873    0.55137    0.39824    0.55112    0.39799    0.55038    0.39775    0.54817    0.39775
  11      50       2    0.54989    0.39775    0.55162    0.39504
@@ -1405,196 +993,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      94       4    0.53910    0.38470    0.54040    0.38728    0.54169    0.38470    0.53910    0.38470
  21       6       1
  25       6       1
- 11      50       2    0.57867    0.70593    0.58384    0.69817
- 11      50       2    0.58384    0.70593    0.57867    0.69817
- 11     116       5    0.59271    0.70335    0.59234    0.70298    0.59271    0.70261    0.59307    0.70298    0.59271    0.70335
- 11     116       5    0.59271    0.69891    0.59234    0.69854    0.59271    0.69817    0.59307    0.69854    0.59271    0.69891
- 11     380      17    0.60379    0.70593    0.60268    0.70556    0.60194    0.70445    0.60157    0.70261    0.60157    0.70150    0.60194    0.69965    0.60268    0.69854    0.60379    0.69817    0.60452    0.69817    0.60563    0.69854    0.60637    0.69965    0.60674    0.70150    0.60674    0.70261    0.60637    0.70445    0.60563    0.70556    0.60452    0.70593    0.60379    0.70593
- 11     116       5    0.60969    0.69891    0.60933    0.69854    0.60969    0.69817    0.61006    0.69854    0.60969    0.69891
- 11     380      17    0.61708    0.70593    0.61339    0.70593    0.61302    0.70261    0.61339    0.70298    0.61450    0.70335    0.61560    0.70335    0.61671    0.70298    0.61745    0.70224    0.61782    0.70113    0.61782    0.70039    0.61745    0.69928    0.61671    0.69854    0.61560    0.69817    0.61450    0.69817    0.61339    0.69854    0.61302    0.69891    0.61265    0.69965
- 11     116       5    0.62668    0.70593    0.62668    0.69965    0.62705    0.69854    0.62779    0.69817    0.62853    0.69817
- 11      50       2    0.62558    0.70335    0.62816    0.70335
- 11     380      17    0.63222    0.70335    0.63149    0.70298    0.63075    0.70224    0.63038    0.70113    0.63038    0.70039    0.63075    0.69928    0.63149    0.69854    0.63222    0.69817    0.63333    0.69817    0.63407    0.69854    0.63481    0.69928    0.63518    0.70039    0.63518    0.70113    0.63481    0.70224    0.63407    0.70298    0.63333    0.70335    0.63222    0.70335
- 11      94       4    0.64441    0.70445    0.64515    0.70482    0.64626    0.70593    0.64626    0.69817
- 11     380      17    0.65291    0.70593    0.65180    0.70556    0.65106    0.70445    0.65069    0.70261    0.65069    0.70150    0.65106    0.69965    0.65180    0.69854    0.65291    0.69817    0.65365    0.69817    0.65475    0.69854    0.65549    0.69965    0.65586    0.70150    0.65586    0.70261    0.65549    0.70445    0.65475    0.70556    0.65365    0.70593    0.65291    0.70593
- 11     116       5    0.65882    0.69891    0.65845    0.69854    0.65882    0.69817    0.65919    0.69854    0.65882    0.69891
- 11     380      17    0.66620    0.70593    0.66251    0.70593    0.66214    0.70261    0.66251    0.70298    0.66362    0.70335    0.66473    0.70335    0.66583    0.70298    0.66657    0.70224    0.66694    0.70113    0.66694    0.70039    0.66657    0.69928    0.66583    0.69854    0.66473    0.69817    0.66362    0.69817    0.66251    0.69854    0.66214    0.69891    0.66177    0.69965
- 11      50       2    0.54817    0.43511    0.54817    0.42994
- 11     226      10    0.54817    0.43511    0.55038    0.43511    0.55112    0.43486    0.55137    0.43462    0.55162    0.43413    0.55162    0.43363    0.55137    0.43314    0.55112    0.43289    0.55038    0.43265    0.54817    0.43265
- 11      50       2    0.54989    0.43265    0.55162    0.42994
- 11      50       2    0.55457    0.43511    0.55260    0.42994
- 11      50       2    0.55457    0.43511    0.55654    0.42994
- 11      50       2    0.55334    0.43166    0.55580    0.43166
- 11      50       2    0.55777    0.43511    0.55777    0.42994
- 11      50       2    0.55777    0.43511    0.56122    0.42994
- 11      50       2    0.56122    0.43511    0.56122    0.42994
- 11      50       2    0.56319    0.43511    0.56319    0.42994
- 11     270      12    0.56319    0.43511    0.56491    0.43511    0.56565    0.43486    0.56614    0.43437    0.56639    0.43388    0.56664    0.43314    0.56664    0.43191    0.56639    0.43117    0.56614    0.43068    0.56565    0.43019    0.56491    0.42994    0.56319    0.42994
- 11     226      10    0.56836    0.43511    0.56836    0.43142    0.56861    0.43068    0.56910    0.43019    0.56984    0.42994    0.57033    0.42994    0.57107    0.43019    0.57156    0.43068    0.57181    0.43142    0.57181    0.43511
- 11     226      10    0.57550    0.43610    0.57501    0.43560    0.57451    0.43486    0.57402    0.43388    0.57378    0.43265    0.57378    0.43166    0.57402    0.43043    0.57451    0.42945    0.57501    0.42871    0.57550    0.42822
- 11      50       2    0.57722    0.43511    0.57722    0.42994
- 11      50       2    0.57919    0.43610    0.57919    0.42822
- 11      50       2    0.57944    0.43610    0.57944    0.42822
- 11      50       2    0.57919    0.43610    0.58092    0.43610
- 11      50       2    0.57919    0.42822    0.58092    0.42822
- 11      50       2    0.58264    0.43511    0.58264    0.42994
- 11      50       2    0.58461    0.43289    0.58904    0.43289
- 11      50       2    0.58461    0.43142    0.58904    0.43142
- 11      94       4    0.59150    0.43413    0.59200    0.43437    0.59274    0.43511    0.59274    0.42994
- 11     116       5    0.59618    0.43339    0.59594    0.43314    0.59618    0.43289    0.59643    0.43314    0.59618    0.43339
- 11     116       5    0.59618    0.43043    0.59594    0.43019    0.59618    0.42994    0.59643    0.43019    0.59618    0.43043
- 11      94       4    0.59889    0.43413    0.59938    0.43437    0.60012    0.43511    0.60012    0.42994
- 11     380      17    0.60455    0.43511    0.60382    0.43486    0.60332    0.43413    0.60308    0.43289    0.60308    0.43216    0.60332    0.43092    0.60382    0.43019    0.60455    0.42994    0.60505    0.42994    0.60579    0.43019    0.60628    0.43092    0.60652    0.43216    0.60652    0.43289    0.60628    0.43413    0.60579    0.43486    0.60505    0.43511    0.60455    0.43511
- 11      50       2    0.60948    0.43610    0.60948    0.42822
- 11      50       2    0.60973    0.43610    0.60973    0.42822
- 11      50       2    0.60800    0.43610    0.60973    0.43610
- 11      50       2    0.60800    0.42822    0.60973    0.42822
- 11      50       2    0.61391    0.43437    0.61391    0.42994
- 11      50       2    0.61170    0.43216    0.61613    0.43216
- 11      94       4    0.61859    0.43413    0.61908    0.43437    0.61982    0.43511    0.61982    0.42994
- 11     380      17    0.62425    0.43511    0.62351    0.43486    0.62302    0.43413    0.62278    0.43289    0.62278    0.43216    0.62302    0.43092    0.62351    0.43019    0.62425    0.42994    0.62475    0.42994    0.62548    0.43019    0.62598    0.43092    0.62622    0.43216    0.62622    0.43289    0.62598    0.43413    0.62548    0.43486    0.62475    0.43511    0.62425    0.43511
- 11      50       2    0.63016    0.43437    0.63016    0.42994
- 11      50       2    0.62795    0.43216    0.63238    0.43216
- 11      50       2    0.63435    0.43511    0.63435    0.42994
- 11      50       2    0.63435    0.43511    0.63755    0.43511
- 11      50       2    0.63435    0.43265    0.63632    0.43265
- 11      50       2    0.63435    0.42994    0.63755    0.42994
- 11      50       2    0.63903    0.43511    0.63903    0.42994
- 11     226      10    0.63903    0.43511    0.64124    0.43511    0.64198    0.43486    0.64223    0.43462    0.64247    0.43413    0.64247    0.43339    0.64223    0.43289    0.64198    0.43265    0.64124    0.43240    0.63903    0.43240
- 11     446      20    0.64740    0.43437    0.64691    0.43486    0.64617    0.43511    0.64518    0.43511    0.64444    0.43486    0.64395    0.43437    0.64395    0.43388    0.64420    0.43339    0.64444    0.43314    0.64494    0.43289    0.64641    0.43240    0.64691    0.43216    0.64715    0.43191    0.64740    0.43142    0.64740    0.43068    0.64691    0.43019    0.64617    0.42994    0.64518    0.42994    0.64444    0.43019    0.64395    0.43068
- 11     226      10    0.64888    0.43610    0.64937    0.43560    0.64986    0.43486    0.65035    0.43388    0.65060    0.43265    0.65060    0.43166    0.65035    0.43043    0.64986    0.42945    0.64937    0.42871    0.64888    0.42822
- 11      50       2    0.54817    0.42348    0.54817    0.41831
- 11     226      10    0.54817    0.42348    0.55038    0.42348    0.55112    0.42323    0.55137    0.42298    0.55162    0.42249    0.55162    0.42200    0.55137    0.42151    0.55112    0.42126    0.55038    0.42101    0.54817    0.42101
- 11      50       2    0.54989    0.42101    0.55162    0.41831
- 11      50       2    0.55457    0.42348    0.55260    0.41831
- 11      50       2    0.55457    0.42348    0.55654    0.41831
- 11      50       2    0.55334    0.42003    0.55580    0.42003
- 11      50       2    0.55777    0.42348    0.55777    0.41831
- 11      50       2    0.55777    0.42348    0.56122    0.41831
- 11      50       2    0.56122    0.42348    0.56122    0.41831
- 11      50       2    0.56319    0.42348    0.56319    0.41831
- 11     270      12    0.56319    0.42348    0.56491    0.42348    0.56565    0.42323    0.56614    0.42274    0.56639    0.42225    0.56664    0.42151    0.56664    0.42028    0.56639    0.41954    0.56614    0.41904    0.56565    0.41855    0.56491    0.41831    0.56319    0.41831
- 11     226      10    0.56836    0.42348    0.56836    0.41978    0.56861    0.41904    0.56910    0.41855    0.56984    0.41831    0.57033    0.41831    0.57107    0.41855    0.57156    0.41904    0.57181    0.41978    0.57181    0.42348
- 11     226      10    0.57550    0.42446    0.57501    0.42397    0.57451    0.42323    0.57402    0.42225    0.57378    0.42101    0.57378    0.42003    0.57402    0.41880    0.57451    0.41781    0.57501    0.41707    0.57550    0.41658
- 11      50       2    0.57722    0.42348    0.57722    0.41831
- 11      50       2    0.57919    0.42446    0.57919    0.41658
- 11      50       2    0.57944    0.42446    0.57944    0.41658
- 11      50       2    0.57919    0.42446    0.58092    0.42446
- 11      50       2    0.57919    0.41658    0.58092    0.41658
- 11      50       2    0.58264    0.42348    0.58264    0.41831
- 11      50       2    0.58461    0.42126    0.58904    0.42126
- 11      50       2    0.58461    0.41978    0.58904    0.41978
- 11      94       4    0.59150    0.42249    0.59200    0.42274    0.59274    0.42348    0.59274    0.41831
- 11     116       5    0.59618    0.42175    0.59594    0.42151    0.59618    0.42126    0.59643    0.42151    0.59618    0.42175
- 11     116       5    0.59618    0.41880    0.59594    0.41855    0.59618    0.41831    0.59643    0.41855    0.59618    0.41880
- 11      94       4    0.59889    0.42249    0.59938    0.42274    0.60012    0.42348    0.60012    0.41831
- 11     380      17    0.60455    0.42348    0.60382    0.42323    0.60332    0.42249    0.60308    0.42126    0.60308    0.42052    0.60332    0.41929    0.60382    0.41855    0.60455    0.41831    0.60505    0.41831    0.60579    0.41855    0.60628    0.41929    0.60652    0.42052    0.60652    0.42126    0.60628    0.42249    0.60579    0.42323    0.60505    0.42348    0.60455    0.42348
- 11      50       2    0.60948    0.42446    0.60948    0.41658
- 11      50       2    0.60973    0.42446    0.60973    0.41658
- 11      50       2    0.60800    0.42446    0.60973    0.42446
- 11      50       2    0.60800    0.41658    0.60973    0.41658
- 11      50       2    0.61391    0.42274    0.61391    0.41831
- 11      50       2    0.61170    0.42052    0.61613    0.42052
- 11      94       4    0.61859    0.42249    0.61908    0.42274    0.61982    0.42348    0.61982    0.41831
- 11     380      17    0.62425    0.42348    0.62351    0.42323    0.62302    0.42249    0.62278    0.42126    0.62278    0.42052    0.62302    0.41929    0.62351    0.41855    0.62425    0.41831    0.62475    0.41831    0.62548    0.41855    0.62598    0.41929    0.62622    0.42052    0.62622    0.42126    0.62598    0.42249    0.62548    0.42323    0.62475    0.42348    0.62425    0.42348
- 11      50       2    0.63016    0.42274    0.63016    0.41831
- 11      50       2    0.62795    0.42052    0.63238    0.42052
- 11      50       2    0.63435    0.42348    0.63435    0.41831
- 11      50       2    0.63435    0.42348    0.63755    0.42348
- 11      50       2    0.63435    0.42101    0.63632    0.42101
- 11      50       2    0.63435    0.41831    0.63755    0.41831
- 11      50       2    0.63903    0.42348    0.63903    0.41831
- 11     226      10    0.63903    0.42348    0.64124    0.42348    0.64198    0.42323    0.64223    0.42298    0.64247    0.42249    0.64247    0.42175    0.64223    0.42126    0.64198    0.42101    0.64124    0.42077    0.63903    0.42077
- 11     446      20    0.64740    0.42274    0.64691    0.42323    0.64617    0.42348    0.64518    0.42348    0.64444    0.42323    0.64395    0.42274    0.64395    0.42225    0.64420    0.42175    0.64444    0.42151    0.64494    0.42126    0.64641    0.42077    0.64691    0.42052    0.64715    0.42028    0.64740    0.41978    0.64740    0.41904    0.64691    0.41855    0.64617    0.41831    0.64518    0.41831    0.64444    0.41855    0.64395    0.41904
- 11     226      10    0.64888    0.42446    0.64937    0.42397    0.64986    0.42323    0.65035    0.42225    0.65060    0.42101    0.65060    0.42003    0.65035    0.41880    0.64986    0.41781    0.64937    0.41707    0.64888    0.41658
- 11      50       2    0.54817    0.41184    0.54817    0.40667
- 11     226      10    0.54817    0.41184    0.55038    0.41184    0.55112    0.41160    0.55137    0.41135    0.55162    0.41086    0.55162    0.41036    0.55137    0.40987    0.55112    0.40963    0.55038    0.40938    0.54817    0.40938
- 11      50       2    0.54989    0.40938    0.55162    0.40667
- 11      50       2    0.55457    0.41184    0.55260    0.40667
- 11      50       2    0.55457    0.41184    0.55654    0.40667
- 11      50       2    0.55334    0.40839    0.55580    0.40839
- 11      50       2    0.55777    0.41184    0.55777    0.40667
- 11      50       2    0.55777    0.41184    0.56122    0.40667
- 11      50       2    0.56122    0.41184    0.56122    0.40667
- 11      50       2    0.56319    0.41184    0.56319    0.40667
- 11     270      12    0.56319    0.41184    0.56491    0.41184    0.56565    0.41160    0.56614    0.41110    0.56639    0.41061    0.56664    0.40987    0.56664    0.40864    0.56639    0.40790    0.56614    0.40741    0.56565    0.40692    0.56491    0.40667    0.56319    0.40667
- 11     226      10    0.56836    0.41184    0.56836    0.40815    0.56861    0.40741    0.56910    0.40692    0.56984    0.40667    0.57033    0.40667    0.57107    0.40692    0.57156    0.40741    0.57181    0.40815    0.57181    0.41184
- 11     226      10    0.57550    0.41283    0.57501    0.41233    0.57451    0.41160    0.57402    0.41061    0.57378    0.40938    0.57378    0.40839    0.57402    0.40716    0.57451    0.40618    0.57501    0.40544    0.57550    0.40495
- 11      50       2    0.57722    0.41184    0.57722    0.40667
- 11      50       2    0.57919    0.41283    0.57919    0.40495
- 11      50       2    0.57944    0.41283    0.57944    0.40495
- 11      50       2    0.57919    0.41283    0.58092    0.41283
- 11      50       2    0.57919    0.40495    0.58092    0.40495
- 11      50       2    0.58264    0.41184    0.58264    0.40667
- 11      50       2    0.58461    0.40963    0.58904    0.40963
- 11      50       2    0.58461    0.40815    0.58904    0.40815
- 11      94       4    0.59150    0.41086    0.59200    0.41110    0.59274    0.41184    0.59274    0.40667
- 11     116       5    0.59618    0.41012    0.59594    0.40987    0.59618    0.40963    0.59643    0.40987    0.59618    0.41012
- 11     116       5    0.59618    0.40716    0.59594    0.40692    0.59618    0.40667    0.59643    0.40692    0.59618    0.40716
- 11      94       4    0.59889    0.41086    0.59938    0.41110    0.60012    0.41184    0.60012    0.40667
- 11     380      17    0.60455    0.41184    0.60382    0.41160    0.60332    0.41086    0.60308    0.40963    0.60308    0.40889    0.60332    0.40766    0.60382    0.40692    0.60455    0.40667    0.60505    0.40667    0.60579    0.40692    0.60628    0.40766    0.60652    0.40889    0.60652    0.40963    0.60628    0.41086    0.60579    0.41160    0.60505    0.41184    0.60455    0.41184
- 11      50       2    0.60948    0.41283    0.60948    0.40495
- 11      50       2    0.60973    0.41283    0.60973    0.40495
- 11      50       2    0.60800    0.41283    0.60973    0.41283
- 11      50       2    0.60800    0.40495    0.60973    0.40495
- 11      50       2    0.61391    0.41110    0.61391    0.40667
- 11      50       2    0.61170    0.40889    0.61613    0.40889
- 11      94       4    0.61859    0.41086    0.61908    0.41110    0.61982    0.41184    0.61982    0.40667
- 11     380      17    0.62425    0.41184    0.62351    0.41160    0.62302    0.41086    0.62278    0.40963    0.62278    0.40889    0.62302    0.40766    0.62351    0.40692    0.62425    0.40667    0.62475    0.40667    0.62548    0.40692    0.62598    0.40766    0.62622    0.40889    0.62622    0.40963    0.62598    0.41086    0.62548    0.41160    0.62475    0.41184    0.62425    0.41184
- 11      50       2    0.63016    0.41110    0.63016    0.40667
- 11      50       2    0.62795    0.40889    0.63238    0.40889
- 11      50       2    0.63435    0.41184    0.63435    0.40667
- 11      50       2    0.63435    0.41184    0.63755    0.41184
- 11      50       2    0.63435    0.40938    0.63632    0.40938
- 11      50       2    0.63435    0.40667    0.63755    0.40667
- 11      50       2    0.63903    0.41184    0.63903    0.40667
- 11     226      10    0.63903    0.41184    0.64124    0.41184    0.64198    0.41160    0.64223    0.41135    0.64247    0.41086    0.64247    0.41012    0.64223    0.40963    0.64198    0.40938    0.64124    0.40913    0.63903    0.40913
- 11     446      20    0.64740    0.41110    0.64691    0.41160    0.64617    0.41184    0.64518    0.41184    0.64444    0.41160    0.64395    0.41110    0.64395    0.41061    0.64420    0.41012    0.64444    0.40987    0.64494    0.40963    0.64641    0.40913    0.64691    0.40889    0.64715    0.40864    0.64740    0.40815    0.64740    0.40741    0.64691    0.40692    0.64617    0.40667    0.64518    0.40667    0.64444    0.40692    0.64395    0.40741
- 11     226      10    0.64888    0.41283    0.64937    0.41233    0.64986    0.41160    0.65035    0.41061    0.65060    0.40938    0.65060    0.40839    0.65035    0.40716    0.64986    0.40618    0.64937    0.40544    0.64888    0.40495
- 11      50       2    0.54817    0.40021    0.54817    0.39504
- 11     226      10    0.54817    0.40021    0.55038    0.40021    0.55112    0.39996    0.55137    0.39972    0.55162    0.39922    0.55162    0.39873    0.55137    0.39824    0.55112    0.39799    0.55038    0.39775    0.54817    0.39775
- 11      50       2    0.54989    0.39775    0.55162    0.39504
- 11      50       2    0.55457    0.40021    0.55260    0.39504
- 11      50       2    0.55457    0.40021    0.55654    0.39504
- 11      50       2    0.55334    0.39676    0.55580    0.39676
- 11      50       2    0.55777    0.40021    0.55777    0.39504
- 11      50       2    0.55777    0.40021    0.56122    0.39504
- 11      50       2    0.56122    0.40021    0.56122    0.39504
- 11      50       2    0.56319    0.40021    0.56319    0.39504
- 11     270      12    0.56319    0.40021    0.56491    0.40021    0.56565    0.39996    0.56614    0.39947    0.56639    0.39898    0.56664    0.39824    0.56664    0.39701    0.56639    0.39627    0.56614    0.39578    0.56565    0.39528    0.56491    0.39504    0.56319    0.39504
- 11     226      10    0.56836    0.40021    0.56836    0.39651    0.56861    0.39578    0.56910    0.39528    0.56984    0.39504    0.57033    0.39504    0.57107    0.39528    0.57156    0.39578    0.57181    0.39651    0.57181    0.40021
- 11     226      10    0.57550    0.40119    0.57501    0.40070    0.57451    0.39996    0.57402    0.39898    0.57378    0.39775    0.57378    0.39676    0.57402    0.39553    0.57451    0.39454    0.57501    0.39381    0.57550    0.39331
- 11      50       2    0.57722    0.40021    0.57722    0.39504
- 11      50       2    0.57919    0.40119    0.57919    0.39331
- 11      50       2    0.57944    0.40119    0.57944    0.39331
- 11      50       2    0.57919    0.40119    0.58092    0.40119
- 11      50       2    0.57919    0.39331    0.58092    0.39331
- 11      50       2    0.58264    0.40021    0.58264    0.39504
- 11      50       2    0.58461    0.39799    0.58904    0.39799
- 11      50       2    0.58461    0.39651    0.58904    0.39651
- 11      94       4    0.59150    0.39922    0.59200    0.39947    0.59274    0.40021    0.59274    0.39504
- 11     116       5    0.59618    0.39848    0.59594    0.39824    0.59618    0.39799    0.59643    0.39824    0.59618    0.39848
- 11     116       5    0.59618    0.39553    0.59594    0.39528    0.59618    0.39504    0.59643    0.39528    0.59618    0.39553
- 11      94       4    0.59889    0.39922    0.59938    0.39947    0.60012    0.40021    0.60012    0.39504
- 11     380      17    0.60455    0.40021    0.60382    0.39996    0.60332    0.39922    0.60308    0.39799    0.60308    0.39725    0.60332    0.39602    0.60382    0.39528    0.60455    0.39504    0.60505    0.39504    0.60579    0.39528    0.60628    0.39602    0.60652    0.39725    0.60652    0.39799    0.60628    0.39922    0.60579    0.39996    0.60505    0.40021    0.60455    0.40021
- 11      50       2    0.60948    0.40119    0.60948    0.39331
- 11      50       2    0.60973    0.40119    0.60973    0.39331
- 11      50       2    0.60800    0.40119    0.60973    0.40119
- 11      50       2    0.60800    0.39331    0.60973    0.39331
- 11      50       2    0.61391    0.39947    0.61391    0.39504
- 11      50       2    0.61170    0.39725    0.61613    0.39725
- 11      94       4    0.61859    0.39922    0.61908    0.39947    0.61982    0.40021    0.61982    0.39504
- 11     380      17    0.62425    0.40021    0.62351    0.39996    0.62302    0.39922    0.62278    0.39799    0.62278    0.39725    0.62302    0.39602    0.62351    0.39528    0.62425    0.39504    0.62475    0.39504    0.62548    0.39528    0.62598    0.39602    0.62622    0.39725    0.62622    0.39799    0.62598    0.39922    0.62548    0.39996    0.62475    0.40021    0.62425    0.40021
- 11      50       2    0.63016    0.39947    0.63016    0.39504
- 11      50       2    0.62795    0.39725    0.63238    0.39725
- 11      50       2    0.63435    0.40021    0.63435    0.39504
- 11      50       2    0.63435    0.40021    0.63755    0.40021
- 11      50       2    0.63435    0.39775    0.63632    0.39775
- 11      50       2    0.63435    0.39504    0.63755    0.39504
- 11      50       2    0.63903    0.40021    0.63903    0.39504
- 11     226      10    0.63903    0.40021    0.64124    0.40021    0.64198    0.39996    0.64223    0.39972    0.64247    0.39922    0.64247    0.39848    0.64223    0.39799    0.64198    0.39775    0.64124    0.39750    0.63903    0.39750
- 11     446      20    0.64740    0.39947    0.64691    0.39996    0.64617    0.40021    0.64518    0.40021    0.64444    0.39996    0.64395    0.39947    0.64395    0.39898    0.64420    0.39848    0.64444    0.39824    0.64494    0.39799    0.64641    0.39750    0.64691    0.39725    0.64715    0.39701    0.64740    0.39651    0.64740    0.39578    0.64691    0.39528    0.64617    0.39504    0.64518    0.39504    0.64444    0.39528    0.64395    0.39578
- 11     226      10    0.64888    0.40119    0.64937    0.40070    0.64986    0.39996    0.65035    0.39898    0.65060    0.39775    0.65060    0.39676    0.65035    0.39553    0.64986    0.39454    0.64937    0.39381    0.64888    0.39331
  11      50       2    0.54817    0.38857    0.54817    0.38340
  11     226      10    0.54817    0.38857    0.55038    0.38857    0.55112    0.38833    0.55137    0.38808    0.55162    0.38759    0.55162    0.38710    0.55137    0.38660    0.55112    0.38636    0.55038    0.38611    0.54817    0.38611
  11      50       2    0.54989    0.38611    0.55162    0.38340
@@ -1718,240 +1116,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
  11      50       2    0.60891    0.47661    0.61343    0.47661
  21       6       1
  25       6       1
- 11      50       2    0.57867    0.70593    0.58384    0.69817
- 11      50       2    0.58384    0.70593    0.57867    0.69817
- 11     116       5    0.59271    0.70335    0.59234    0.70298    0.59271    0.70261    0.59307    0.70298    0.59271    0.70335
- 11     116       5    0.59271    0.69891    0.59234    0.69854    0.59271    0.69817    0.59307    0.69854    0.59271    0.69891
- 11     380      17    0.60379    0.70593    0.60268    0.70556    0.60194    0.70445    0.60157    0.70261    0.60157    0.70150    0.60194    0.69965    0.60268    0.69854    0.60379    0.69817    0.60452    0.69817    0.60563    0.69854    0.60637    0.69965    0.60674    0.70150    0.60674    0.70261    0.60637    0.70445    0.60563    0.70556    0.60452    0.70593    0.60379    0.70593
- 11     116       5    0.60969    0.69891    0.60933    0.69854    0.60969    0.69817    0.61006    0.69854    0.60969    0.69891
- 11     380      17    0.61708    0.70593    0.61339    0.70593    0.61302    0.70261    0.61339    0.70298    0.61450    0.70335    0.61560    0.70335    0.61671    0.70298    0.61745    0.70224    0.61782    0.70113    0.61782    0.70039    0.61745    0.69928    0.61671    0.69854    0.61560    0.69817    0.61450    0.69817    0.61339    0.69854    0.61302    0.69891    0.61265    0.69965
- 11     116       5    0.62668    0.70593    0.62668    0.69965    0.62705    0.69854    0.62779    0.69817    0.62853    0.69817
- 11      50       2    0.62558    0.70335    0.62816    0.70335
- 11     380      17    0.63222    0.70335    0.63149    0.70298    0.63075    0.70224    0.63038    0.70113    0.63038    0.70039    0.63075    0.69928    0.63149    0.69854    0.63222    0.69817    0.63333    0.69817    0.63407    0.69854    0.63481    0.69928    0.63518    0.70039    0.63518    0.70113    0.63481    0.70224    0.63407    0.70298    0.63333    0.70335    0.63222    0.70335
- 11      94       4    0.64441    0.70445    0.64515    0.70482    0.64626    0.70593    0.64626    0.69817
- 11     380      17    0.65291    0.70593    0.65180    0.70556    0.65106    0.70445    0.65069    0.70261    0.65069    0.70150    0.65106    0.69965    0.65180    0.69854    0.65291    0.69817    0.65365    0.69817    0.65475    0.69854    0.65549    0.69965    0.65586    0.70150    0.65586    0.70261    0.65549    0.70445    0.65475    0.70556    0.65365    0.70593    0.65291    0.70593
- 11     116       5    0.65882    0.69891    0.65845    0.69854    0.65882    0.69817    0.65919    0.69854    0.65882    0.69891
- 11     380      17    0.66620    0.70593    0.66251    0.70593    0.66214    0.70261    0.66251    0.70298    0.66362    0.70335    0.66473    0.70335    0.66583    0.70298    0.66657    0.70224    0.66694    0.70113    0.66694    0.70039    0.66657    0.69928    0.66583    0.69854    0.66473    0.69817    0.66362    0.69817    0.66251    0.69854    0.66214    0.69891    0.66177    0.69965
- 11      50       2    0.54817    0.43511    0.54817    0.42994
- 11     226      10    0.54817    0.43511    0.55038    0.43511    0.55112    0.43486    0.55137    0.43462    0.55162    0.43413    0.55162    0.43363    0.55137    0.43314    0.55112    0.43289    0.55038    0.43265    0.54817    0.43265
- 11      50       2    0.54989    0.43265    0.55162    0.42994
- 11      50       2    0.55457    0.43511    0.55260    0.42994
- 11      50       2    0.55457    0.43511    0.55654    0.42994
- 11      50       2    0.55334    0.43166    0.55580    0.43166
- 11      50       2    0.55777    0.43511    0.55777    0.42994
- 11      50       2    0.55777    0.43511    0.56122    0.42994
- 11      50       2    0.56122    0.43511    0.56122    0.42994
- 11      50       2    0.56319    0.43511    0.56319    0.42994
- 11     270      12    0.56319    0.43511    0.56491    0.43511    0.56565    0.43486    0.56614    0.43437    0.56639    0.43388    0.56664    0.43314    0.56664    0.43191    0.56639    0.43117    0.56614    0.43068    0.56565    0.43019    0.56491    0.42994    0.56319    0.42994
- 11     226      10    0.56836    0.43511    0.56836    0.43142    0.56861    0.43068    0.56910    0.43019    0.56984    0.42994    0.57033    0.42994    0.57107    0.43019    0.57156    0.43068    0.57181    0.43142    0.57181    0.43511
- 11     226      10    0.57550    0.43610    0.57501    0.43560    0.57451    0.43486    0.57402    0.43388    0.57378    0.43265    0.57378    0.43166    0.57402    0.43043    0.57451    0.42945    0.57501    0.42871    0.57550    0.42822
- 11      50       2    0.57722    0.43511    0.57722    0.42994
- 11      50       2    0.57919    0.43610    0.57919    0.42822
- 11      50       2    0.57944    0.43610    0.57944    0.42822
- 11      50       2    0.57919    0.43610    0.58092    0.43610
- 11      50       2    0.57919    0.42822    0.58092    0.42822
- 11      50       2    0.58264    0.43511    0.58264    0.42994
- 11      50       2    0.58461    0.43289    0.58904    0.43289
- 11      50       2    0.58461    0.43142    0.58904    0.43142
- 11      94       4    0.59150    0.43413    0.59200    0.43437    0.59274    0.43511    0.59274    0.42994
- 11     116       5    0.59618    0.43339    0.59594    0.43314    0.59618    0.43289    0.59643    0.43314    0.59618    0.43339
- 11     116       5    0.59618    0.43043    0.59594    0.43019    0.59618    0.42994    0.59643    0.43019    0.59618    0.43043
- 11      94       4    0.59889    0.43413    0.59938    0.43437    0.60012    0.43511    0.60012    0.42994
- 11     380      17    0.60455    0.43511    0.60382    0.43486    0.60332    0.43413    0.60308    0.43289    0.60308    0.43216    0.60332    0.43092    0.60382    0.43019    0.60455    0.42994    0.60505    0.42994    0.60579    0.43019    0.60628    0.43092    0.60652    0.43216    0.60652    0.43289    0.60628    0.43413    0.60579    0.43486    0.60505    0.43511    0.60455    0.43511
- 11      50       2    0.60948    0.43610    0.60948    0.42822
- 11      50       2    0.60973    0.43610    0.60973    0.42822
- 11      50       2    0.60800    0.43610    0.60973    0.43610
- 11      50       2    0.60800    0.42822    0.60973    0.42822
- 11      50       2    0.61391    0.43437    0.61391    0.42994
- 11      50       2    0.61170    0.43216    0.61613    0.43216
- 11      94       4    0.61859    0.43413    0.61908    0.43437    0.61982    0.43511    0.61982    0.42994
- 11     380      17    0.62425    0.43511    0.62351    0.43486    0.62302    0.43413    0.62278    0.43289    0.62278    0.43216    0.62302    0.43092    0.62351    0.43019    0.62425    0.42994    0.62475    0.42994    0.62548    0.43019    0.62598    0.43092    0.62622    0.43216    0.62622    0.43289    0.62598    0.43413    0.62548    0.43486    0.62475    0.43511    0.62425    0.43511
- 11      50       2    0.63016    0.43437    0.63016    0.42994
- 11      50       2    0.62795    0.43216    0.63238    0.43216
- 11      50       2    0.63435    0.43511    0.63435    0.42994
- 11      50       2    0.63435    0.43511    0.63755    0.43511
- 11      50       2    0.63435    0.43265    0.63632    0.43265
- 11      50       2    0.63435    0.42994    0.63755    0.42994
- 11      50       2    0.63903    0.43511    0.63903    0.42994
- 11     226      10    0.63903    0.43511    0.64124    0.43511    0.64198    0.43486    0.64223    0.43462    0.64247    0.43413    0.64247    0.43339    0.64223    0.43289    0.64198    0.43265    0.64124    0.43240    0.63903    0.43240
- 11     446      20    0.64740    0.43437    0.64691    0.43486    0.64617    0.43511    0.64518    0.43511    0.64444    0.43486    0.64395    0.43437    0.64395    0.43388    0.64420    0.43339    0.64444    0.43314    0.64494    0.43289    0.64641    0.43240    0.64691    0.43216    0.64715    0.43191    0.64740    0.43142    0.64740    0.43068    0.64691    0.43019    0.64617    0.42994    0.64518    0.42994    0.64444    0.43019    0.64395    0.43068
- 11     226      10    0.64888    0.43610    0.64937    0.43560    0.64986    0.43486    0.65035    0.43388    0.65060    0.43265    0.65060    0.43166    0.65035    0.43043    0.64986    0.42945    0.64937    0.42871    0.64888    0.42822
- 11      50       2    0.54817    0.42348    0.54817    0.41831
- 11     226      10    0.54817    0.42348    0.55038    0.42348    0.55112    0.42323    0.55137    0.42298    0.55162    0.42249    0.55162    0.42200    0.55137    0.42151    0.55112    0.42126    0.55038    0.42101    0.54817    0.42101
- 11      50       2    0.54989    0.42101    0.55162    0.41831
- 11      50       2    0.55457    0.42348    0.55260    0.41831
- 11      50       2    0.55457    0.42348    0.55654    0.41831
- 11      50       2    0.55334    0.42003    0.55580    0.42003
- 11      50       2    0.55777    0.42348    0.55777    0.41831
- 11      50       2    0.55777    0.42348    0.56122    0.41831
- 11      50       2    0.56122    0.42348    0.56122    0.41831
- 11      50       2    0.56319    0.42348    0.56319    0.41831
- 11     270      12    0.56319    0.42348    0.56491    0.42348    0.56565    0.42323    0.56614    0.42274    0.56639    0.42225    0.56664    0.42151    0.56664    0.42028    0.56639    0.41954    0.56614    0.41904    0.56565    0.41855    0.56491    0.41831    0.56319    0.41831
- 11     226      10    0.56836    0.42348    0.56836    0.41978    0.56861    0.41904    0.56910    0.41855    0.56984    0.41831    0.57033    0.41831    0.57107    0.41855    0.57156    0.41904    0.57181    0.41978    0.57181    0.42348
- 11     226      10    0.57550    0.42446    0.57501    0.42397    0.57451    0.42323    0.57402    0.42225    0.57378    0.42101    0.57378    0.42003    0.57402    0.41880    0.57451    0.41781    0.57501    0.41707    0.57550    0.41658
- 11      50       2    0.57722    0.42348    0.57722    0.41831
- 11      50       2    0.57919    0.42446    0.57919    0.41658
- 11      50       2    0.57944    0.42446    0.57944    0.41658
- 11      50       2    0.57919    0.42446    0.58092    0.42446
- 11      50       2    0.57919    0.41658    0.58092    0.41658
- 11      50       2    0.58264    0.42348    0.58264    0.41831
- 11      50       2    0.58461    0.42126    0.58904    0.42126
- 11      50       2    0.58461    0.41978    0.58904    0.41978
- 11      94       4    0.59150    0.42249    0.59200    0.42274    0.59274    0.42348    0.59274    0.41831
- 11     116       5    0.59618    0.42175    0.59594    0.42151    0.59618    0.42126    0.59643    0.42151    0.59618    0.42175
- 11     116       5    0.59618    0.41880    0.59594    0.41855    0.59618    0.41831    0.59643    0.41855    0.59618    0.41880
- 11      94       4    0.59889    0.42249    0.59938    0.42274    0.60012    0.42348    0.60012    0.41831
- 11     380      17    0.60455    0.42348    0.60382    0.42323    0.60332    0.42249    0.60308    0.42126    0.60308    0.42052    0.60332    0.41929    0.60382    0.41855    0.60455    0.41831    0.60505    0.41831    0.60579    0.41855    0.60628    0.41929    0.60652    0.42052    0.60652    0.42126    0.60628    0.42249    0.60579    0.42323    0.60505    0.42348    0.60455    0.42348
- 11      50       2    0.60948    0.42446    0.60948    0.41658
- 11      50       2    0.60973    0.42446    0.60973    0.41658
- 11      50       2    0.60800    0.42446    0.60973    0.42446
- 11      50       2    0.60800    0.41658    0.60973    0.41658
- 11      50       2    0.61391    0.42274    0.61391    0.41831
- 11      50       2    0.61170    0.42052    0.61613    0.42052
- 11      94       4    0.61859    0.42249    0.61908    0.42274    0.61982    0.42348    0.61982    0.41831
- 11     380      17    0.62425    0.42348    0.62351    0.42323    0.62302    0.42249    0.62278    0.42126    0.62278    0.42052    0.62302    0.41929    0.62351    0.41855    0.62425    0.41831    0.62475    0.41831    0.62548    0.41855    0.62598    0.41929    0.62622    0.42052    0.62622    0.42126    0.62598    0.42249    0.62548    0.42323    0.62475    0.42348    0.62425    0.42348
- 11      50       2    0.63016    0.42274    0.63016    0.41831
- 11      50       2    0.62795    0.42052    0.63238    0.42052
- 11      50       2    0.63435    0.42348    0.63435    0.41831
- 11      50       2    0.63435    0.42348    0.63755    0.42348
- 11      50       2    0.63435    0.42101    0.63632    0.42101
- 11      50       2    0.63435    0.41831    0.63755    0.41831
- 11      50       2    0.63903    0.42348    0.63903    0.41831
- 11     226      10    0.63903    0.42348    0.64124    0.42348    0.64198    0.42323    0.64223    0.42298    0.64247    0.42249    0.64247    0.42175    0.64223    0.42126    0.64198    0.42101    0.64124    0.42077    0.63903    0.42077
- 11     446      20    0.64740    0.42274    0.64691    0.42323    0.64617    0.42348    0.64518    0.42348    0.64444    0.42323    0.64395    0.42274    0.64395    0.42225    0.64420    0.42175    0.64444    0.42151    0.64494    0.42126    0.64641    0.42077    0.64691    0.42052    0.64715    0.42028    0.64740    0.41978    0.64740    0.41904    0.64691    0.41855    0.64617    0.41831    0.64518    0.41831    0.64444    0.41855    0.64395    0.41904
- 11     226      10    0.64888    0.42446    0.64937    0.42397    0.64986    0.42323    0.65035    0.42225    0.65060    0.42101    0.65060    0.42003    0.65035    0.41880    0.64986    0.41781    0.64937    0.41707    0.64888    0.41658
- 11      50       2    0.54817    0.41184    0.54817    0.40667
- 11     226      10    0.54817    0.41184    0.55038    0.41184    0.55112    0.41160    0.55137    0.41135    0.55162    0.41086    0.55162    0.41036    0.55137    0.40987    0.55112    0.40963    0.55038    0.40938    0.54817    0.40938
- 11      50       2    0.54989    0.40938    0.55162    0.40667
- 11      50       2    0.55457    0.41184    0.55260    0.40667
- 11      50       2    0.55457    0.41184    0.55654    0.40667
- 11      50       2    0.55334    0.40839    0.55580    0.40839
- 11      50       2    0.55777    0.41184    0.55777    0.40667
- 11      50       2    0.55777    0.41184    0.56122    0.40667
- 11      50       2    0.56122    0.41184    0.56122    0.40667
- 11      50       2    0.56319    0.41184    0.56319    0.40667
- 11     270      12    0.56319    0.41184    0.56491    0.41184    0.56565    0.41160    0.56614    0.41110    0.56639    0.41061    0.56664    0.40987    0.56664    0.40864    0.56639    0.40790    0.56614    0.40741    0.56565    0.40692    0.56491    0.40667    0.56319    0.40667
- 11     226      10    0.56836    0.41184    0.56836    0.40815    0.56861    0.40741    0.56910    0.40692    0.56984    0.40667    0.57033    0.40667    0.57107    0.40692    0.57156    0.40741    0.57181    0.40815    0.57181    0.41184
- 11     226      10    0.57550    0.41283    0.57501    0.41233    0.57451    0.41160    0.57402    0.41061    0.57378    0.40938    0.57378    0.40839    0.57402    0.40716    0.57451    0.40618    0.57501    0.40544    0.57550    0.40495
- 11      50       2    0.57722    0.41184    0.57722    0.40667
- 11      50       2    0.57919    0.41283    0.57919    0.40495
- 11      50       2    0.57944    0.41283    0.57944    0.40495
- 11      50       2    0.57919    0.41283    0.58092    0.41283
- 11      50       2    0.57919    0.40495    0.58092    0.40495
- 11      50       2    0.58264    0.41184    0.58264    0.40667
- 11      50       2    0.58461    0.40963    0.58904    0.40963
- 11      50       2    0.58461    0.40815    0.58904    0.40815
- 11      94       4    0.59150    0.41086    0.59200    0.41110    0.59274    0.41184    0.59274    0.40667
- 11     116       5    0.59618    0.41012    0.59594    0.40987    0.59618    0.40963    0.59643    0.40987    0.59618    0.41012
- 11     116       5    0.59618    0.40716    0.59594    0.40692    0.59618    0.40667    0.59643    0.40692    0.59618    0.40716
- 11      94       4    0.59889    0.41086    0.59938    0.41110    0.60012    0.41184    0.60012    0.40667
- 11     380      17    0.60455    0.41184    0.60382    0.41160    0.60332    0.41086    0.60308    0.40963    0.60308    0.40889    0.60332    0.40766    0.60382    0.40692    0.60455    0.40667    0.60505    0.40667    0.60579    0.40692    0.60628    0.40766    0.60652    0.40889    0.60652    0.40963    0.60628    0.41086    0.60579    0.41160    0.60505    0.41184    0.60455    0.41184
- 11      50       2    0.60948    0.41283    0.60948    0.40495
- 11      50       2    0.60973    0.41283    0.60973    0.40495
- 11      50       2    0.60800    0.41283    0.60973    0.41283
- 11      50       2    0.60800    0.40495    0.60973    0.40495
- 11      50       2    0.61391    0.41110    0.61391    0.40667
- 11      50       2    0.61170    0.40889    0.61613    0.40889
- 11      94       4    0.61859    0.41086    0.61908    0.41110    0.61982    0.41184    0.61982    0.40667
- 11     380      17    0.62425    0.41184    0.62351    0.41160    0.62302    0.41086    0.62278    0.40963    0.62278    0.40889    0.62302    0.40766    0.62351    0.40692    0.62425    0.40667    0.62475    0.40667    0.62548    0.40692    0.62598    0.40766    0.62622    0.40889    0.62622    0.40963    0.62598    0.41086    0.62548    0.41160    0.62475    0.41184    0.62425    0.41184
- 11      50       2    0.63016    0.41110    0.63016    0.40667
- 11      50       2    0.62795    0.40889    0.63238    0.40889
- 11      50       2    0.63435    0.41184    0.63435    0.40667
- 11      50       2    0.63435    0.41184    0.63755    0.41184
- 11      50       2    0.63435    0.40938    0.63632    0.40938
- 11      50       2    0.63435    0.40667    0.63755    0.40667
- 11      50       2    0.63903    0.41184    0.63903    0.40667
- 11     226      10    0.63903    0.41184    0.64124    0.41184    0.64198    0.41160    0.64223    0.41135    0.64247    0.41086    0.64247    0.41012    0.64223    0.40963    0.64198    0.40938    0.64124    0.40913    0.63903    0.40913
- 11     446      20    0.64740    0.41110    0.64691    0.41160    0.64617    0.41184    0.64518    0.41184    0.64444    0.41160    0.64395    0.41110    0.64395    0.41061    0.64420    0.41012    0.64444    0.40987    0.64494    0.40963    0.64641    0.40913    0.64691    0.40889    0.64715    0.40864    0.64740    0.40815    0.64740    0.40741    0.64691    0.40692    0.64617    0.40667    0.64518    0.40667    0.64444    0.40692    0.64395    0.40741
- 11     226      10    0.64888    0.41283    0.64937    0.41233    0.64986    0.41160    0.65035    0.41061    0.65060    0.40938    0.65060    0.40839    0.65035    0.40716    0.64986    0.40618    0.64937    0.40544    0.64888    0.40495
- 11      50       2    0.54817    0.40021    0.54817    0.39504
- 11     226      10    0.54817    0.40021    0.55038    0.40021    0.55112    0.39996    0.55137    0.39972    0.55162    0.39922    0.55162    0.39873    0.55137    0.39824    0.55112    0.39799    0.55038    0.39775    0.54817    0.39775
- 11      50       2    0.54989    0.39775    0.55162    0.39504
- 11      50       2    0.55457    0.40021    0.55260    0.39504
- 11      50       2    0.55457    0.40021    0.55654    0.39504
- 11      50       2    0.55334    0.39676    0.55580    0.39676
- 11      50       2    0.55777    0.40021    0.55777    0.39504
- 11      50       2    0.55777    0.40021    0.56122    0.39504
- 11      50       2    0.56122    0.40021    0.56122    0.39504
- 11      50       2    0.56319    0.40021    0.56319    0.39504
- 11     270      12    0.56319    0.40021    0.56491    0.40021    0.56565    0.39996    0.56614    0.39947    0.56639    0.39898    0.56664    0.39824    0.56664    0.39701    0.56639    0.39627    0.56614    0.39578    0.56565    0.39528    0.56491    0.39504    0.56319    0.39504
- 11     226      10    0.56836    0.40021    0.56836    0.39651    0.56861    0.39578    0.56910    0.39528    0.56984    0.39504    0.57033    0.39504    0.57107    0.39528    0.57156    0.39578    0.57181    0.39651    0.57181    0.40021
- 11     226      10    0.57550    0.40119    0.57501    0.40070    0.57451    0.39996    0.57402    0.39898    0.57378    0.39775    0.57378    0.39676    0.57402    0.39553    0.57451    0.39454    0.57501    0.39381    0.57550    0.39331
- 11      50       2    0.57722    0.40021    0.57722    0.39504
- 11      50       2    0.57919    0.40119    0.57919    0.39331
- 11      50       2    0.57944    0.40119    0.57944    0.39331
- 11      50       2    0.57919    0.40119    0.58092    0.40119
- 11      50       2    0.57919    0.39331    0.58092    0.39331
- 11      50       2    0.58264    0.40021    0.58264    0.39504
- 11      50       2    0.58461    0.39799    0.58904    0.39799
- 11      50       2    0.58461    0.39651    0.58904    0.39651
- 11      94       4    0.59150    0.39922    0.59200    0.39947    0.59274    0.40021    0.59274    0.39504
- 11     116       5    0.59618    0.39848    0.59594    0.39824    0.59618    0.39799    0.59643    0.39824    0.59618    0.39848
- 11     116       5    0.59618    0.39553    0.59594    0.39528    0.59618    0.39504    0.59643    0.39528    0.59618    0.39553
- 11      94       4    0.59889    0.39922    0.59938    0.39947    0.60012    0.40021    0.60012    0.39504
- 11     380      17    0.60455    0.40021    0.60382    0.39996    0.60332    0.39922    0.60308    0.39799    0.60308    0.39725    0.60332    0.39602    0.60382    0.39528    0.60455    0.39504    0.60505    0.39504    0.60579    0.39528    0.60628    0.39602    0.60652    0.39725    0.60652    0.39799    0.60628    0.39922    0.60579    0.39996    0.60505    0.40021    0.60455    0.40021
- 11      50       2    0.60948    0.40119    0.60948    0.39331
- 11      50       2    0.60973    0.40119    0.60973    0.39331
- 11      50       2    0.60800    0.40119    0.60973    0.40119
- 11      50       2    0.60800    0.39331    0.60973    0.39331
- 11      50       2    0.61391    0.39947    0.61391    0.39504
- 11      50       2    0.61170    0.39725    0.61613    0.39725
- 11      94       4    0.61859    0.39922    0.61908    0.39947    0.61982    0.40021    0.61982    0.39504
- 11     380      17    0.62425    0.40021    0.62351    0.39996    0.62302    0.39922    0.62278    0.39799    0.62278    0.39725    0.62302    0.39602    0.62351    0.39528    0.62425    0.39504    0.62475    0.39504    0.62548    0.39528    0.62598    0.39602    0.62622    0.39725    0.62622    0.39799    0.62598    0.39922    0.62548    0.39996    0.62475    0.40021    0.62425    0.40021
- 11      50       2    0.63016    0.39947    0.63016    0.39504
- 11      50       2    0.62795    0.39725    0.63238    0.39725
- 11      50       2    0.63435    0.40021    0.63435    0.39504
- 11      50       2    0.63435    0.40021    0.63755    0.40021
- 11      50       2    0.63435    0.39775    0.63632    0.39775
- 11      50       2    0.63435    0.39504    0.63755    0.39504
- 11      50       2    0.63903    0.40021    0.63903    0.39504
- 11     226      10    0.63903    0.40021    0.64124    0.40021    0.64198    0.39996    0.64223    0.39972    0.64247    0.39922    0.64247    0.39848    0.64223    0.39799    0.64198    0.39775    0.64124    0.39750    0.63903    0.39750
- 11     446      20    0.64740    0.39947    0.64691    0.39996    0.64617    0.40021    0.64518    0.40021    0.64444    0.39996    0.64395    0.39947    0.64395    0.39898    0.64420    0.39848    0.64444    0.39824    0.64494    0.39799    0.64641    0.39750    0.64691    0.39725    0.64715    0.39701    0.64740    0.39651    0.64740    0.39578    0.64691    0.39528    0.64617    0.39504    0.64518    0.39504    0.64444    0.39528    0.64395    0.39578
- 11     226      10    0.64888    0.40119    0.64937    0.40070    0.64986    0.39996    0.65035    0.39898    0.65060    0.39775    0.65060    0.39676    0.65035    0.39553    0.64986    0.39454    0.64937    0.39381    0.64888    0.39331
- 11      50       2    0.54817    0.38857    0.54817    0.38340
- 11     226      10    0.54817    0.38857    0.55038    0.38857    0.55112    0.38833    0.55137    0.38808    0.55162    0.38759    0.55162    0.38710    0.55137    0.38660    0.55112    0.38636    0.55038    0.38611    0.54817    0.38611
- 11      50       2    0.54989    0.38611    0.55162    0.38340
- 11      50       2    0.55457    0.38857    0.55260    0.38340
- 11      50       2    0.55457    0.38857    0.55654    0.38340
- 11      50       2    0.55334    0.38513    0.55580    0.38513
- 11      50       2    0.55777    0.38857    0.55777    0.38340
- 11      50       2    0.55777    0.38857    0.56122    0.38340
- 11      50       2    0.56122    0.38857    0.56122    0.38340
- 11      50       2    0.56319    0.38857    0.56319    0.38340
- 11     270      12    0.56319    0.38857    0.56491    0.38857    0.56565    0.38833    0.56614    0.38783    0.56639    0.38734    0.56664    0.38660    0.56664    0.38537    0.56639    0.38463    0.56614    0.38414    0.56565    0.38365    0.56491    0.38340    0.56319    0.38340
- 11     226      10    0.56836    0.38857    0.56836    0.38488    0.56861    0.38414    0.56910    0.38365    0.56984    0.38340    0.57033    0.38340    0.57107    0.38365    0.57156    0.38414    0.57181    0.38488    0.57181    0.38857
- 11     226      10    0.57550    0.38956    0.57501    0.38907    0.57451    0.38833    0.57402    0.38734    0.57378    0.38611    0.57378    0.38513    0.57402    0.38390    0.57451    0.38291    0.57501    0.38217    0.57550    0.38168
- 11      50       2    0.57722    0.38857    0.57722    0.38340
- 11      50       2    0.57919    0.38956    0.57919    0.38168
- 11      50       2    0.57944    0.38956    0.57944    0.38168
- 11      50       2    0.57919    0.38956    0.58092    0.38956
- 11      50       2    0.57919    0.38168    0.58092    0.38168
- 11      50       2    0.58264    0.38857    0.58264    0.38340
- 11      50       2    0.58461    0.38636    0.58904    0.38636
- 11      50       2    0.58461    0.38488    0.58904    0.38488
- 11      94       4    0.59150    0.38759    0.59200    0.38783    0.59274    0.38857    0.59274    0.38340
- 11     116       5    0.59618    0.38685    0.59594    0.38660    0.59618    0.38636    0.59643    0.38660    0.59618    0.38685
- 11     116       5    0.59618    0.38390    0.59594    0.38365    0.59618    0.38340    0.59643    0.38365    0.59618    0.38390
- 11      94       4    0.59889    0.38759    0.59938    0.38783    0.60012    0.38857    0.60012    0.38340
- 11     380      17    0.60455    0.38857    0.60382    0.38833    0.60332    0.38759    0.60308    0.38636    0.60308    0.38562    0.60332    0.38439    0.60382    0.38365    0.60455    0.38340    0.60505    0.38340    0.60579    0.38365    0.60628    0.38439    0.60652    0.38562    0.60652    0.38636    0.60628    0.38759    0.60579    0.38833    0.60505    0.38857    0.60455    0.38857
- 11      50       2    0.60948    0.38956    0.60948    0.38168
- 11      50       2    0.60973    0.38956    0.60973    0.38168
- 11      50       2    0.60800    0.38956    0.60973    0.38956
- 11      50       2    0.60800    0.38168    0.60973    0.38168
- 11      50       2    0.61391    0.38783    0.61391    0.38340
- 11      50       2    0.61170    0.38562    0.61613    0.38562
- 11      94       4    0.61859    0.38759    0.61908    0.38783    0.61982    0.38857    0.61982    0.38340
- 11     380      17    0.62425    0.38857    0.62351    0.38833    0.62302    0.38759    0.62278    0.38636    0.62278    0.38562    0.62302    0.38439    0.62351    0.38365    0.62425    0.38340    0.62475    0.38340    0.62548    0.38365    0.62598    0.38439    0.62622    0.38562    0.62622    0.38636    0.62598    0.38759    0.62548    0.38833    0.62475    0.38857    0.62425    0.38857
- 11      50       2    0.63016    0.38783    0.63016    0.38340
- 11      50       2    0.62795    0.38562    0.63238    0.38562
- 11      50       2    0.63435    0.38857    0.63435    0.38340
- 11      50       2    0.63435    0.38857    0.63755    0.38857
- 11      50       2    0.63435    0.38611    0.63632    0.38611
- 11      50       2    0.63435    0.38340    0.63755    0.38340
- 11      50       2    0.63903    0.38857    0.63903    0.38340
- 11     226      10    0.63903    0.38857    0.64124    0.38857    0.64198    0.38833    0.64223    0.38808    0.64247    0.38759    0.64247    0.38685    0.64223    0.38636    0.64198    0.38611    0.64124    0.38586    0.63903    0.38586
- 11     446      20    0.64740    0.38783    0.64691    0.38833    0.64617    0.38857    0.64518    0.38857    0.64444    0.38833    0.64395    0.38783    0.64395    0.38734    0.64420    0.38685    0.64444    0.38660    0.64494    0.38636    0.64641    0.38586    0.64691    0.38562    0.64715    0.38537    0.64740    0.38488    0.64740    0.38414    0.64691    0.38365    0.64617    0.38340    0.64518    0.38340    0.64444    0.38365    0.64395    0.38414
- 11     226      10    0.64888    0.38956    0.64937    0.38907    0.64986    0.38833    0.65035    0.38734    0.65060    0.38611    0.65060    0.38513    0.65035    0.38390    0.64986    0.38291    0.64937    0.38217    0.64888    0.38168
  11      50       2    0.61713    0.47867    0.61713    0.47454
  11     226      10    0.61713    0.47867    0.61890    0.47867    0.61949    0.47848    0.61969    0.47828    0.61989    0.47789    0.61989    0.47749    0.61969    0.47710    0.61949    0.47690    0.61890    0.47670    0.61713    0.47670
  11      50       2    0.61851    0.47670    0.61989    0.47454
diff --git a/bench/metafile_masters_64bit_rh6/multi_line_labels.plt b/bench/metafile_masters_64bit_rh6/multi_line_labels.plt
index 3d50588..9dc0c23 100644
--- a/bench/metafile_masters_64bit_rh6/multi_line_labels.plt
+++ b/bench/metafile_masters_64bit_rh6/multi_line_labels.plt
@@ -1,4 +1,4 @@
-GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1                      
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1                      
   4      12       3       0
  51      29      19       1    1.00000       0
  56      39       2    1.00000    0.00000    0.00000
@@ -87,7 +87,7 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
  11    2206     100    0.10969    0.35028    0.11776    0.35287    0.12583    0.35521    0.13390    0.35719    0.14197    0.35868    0.15004    0.35960    0.15811    0.35987    0.16618    0.35942    0.17425    0.35820    0.18232    0.35621    0.19039    0.35343    0.19846    0.34988    0.20653    0.34562    0.21460    0.34070    0.22267    0.33522    0.23074    0.32928    0.23880    0.32300    0.24687    0.31652    0.25494    0.30999    0.26301    0.30357    0.27108    0.29743    0.27915 [...]
  21       6       1
  25       6       1
- 11     732      33    0.10969    0.12797    0.10969    0.12797    0.10969    0.12797    0.09826    0.12797    0.10969    0.12797    0.10969    0.18287    0.09826    0.18287    0.10969    0.18287    0.10969    0.23776    0.09826    0.23776    0.10969    0.23776    0.10969    0.29266    0.09826    0.29266    0.10969    0.29266    0.10969    0.34755    0.09826    0.34755    0.10969    0.34755    0.10969    0.40245    0.09826    0.40245    0.10969    0.40245    0.10969    0.45734    0.09826 [...]
+ 11     732      33    0.10969    0.12797    0.10969    0.12797    0.09826    0.12797    0.10969    0.12797    0.10969    0.18287    0.09826    0.18287    0.10969    0.18287    0.10969    0.23776    0.09826    0.23776    0.10969    0.23776    0.10969    0.29266    0.09826    0.29266    0.10969    0.29266    0.10969    0.34755    0.09826    0.34755    0.10969    0.34755    0.10969    0.40245    0.09826    0.40245    0.10969    0.40245    0.10969    0.45734    0.09826    0.45734    0.10969 [...]
  11      50       2    0.06007    0.12732    0.06790    0.12732
  11     644      29    0.07313    0.13254    0.07182    0.13211    0.07139    0.13124    0.07139    0.13036    0.07182    0.12949    0.07269    0.12906    0.07443    0.12862    0.07574    0.12819    0.07661    0.12732    0.07704    0.12645    0.07704    0.12514    0.07661    0.12427    0.07617    0.12384    0.07487    0.12340    0.07313    0.12340    0.07182    0.12384    0.07139    0.12427    0.07095    0.12514    0.07095    0.12645    0.07139    0.12732    0.07226    0.12819    0.07356 [...]
  11     380      17    0.08227    0.13254    0.08096    0.13211    0.08009    0.13080    0.07966    0.12862    0.07966    0.12732    0.08009    0.12514    0.08096    0.12384    0.08227    0.12340    0.08314    0.12340    0.08444    0.12384    0.08531    0.12514    0.08575    0.12732    0.08575    0.12862    0.08531    0.13080    0.08444    0.13211    0.08314    0.13254    0.08227    0.13254
@@ -106,9 +106,9 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
  11     644      29    0.07313    0.57170    0.07182    0.57127    0.07139    0.57040    0.07139    0.56953    0.07182    0.56866    0.07269    0.56822    0.07443    0.56779    0.07574    0.56735    0.07661    0.56648    0.07704    0.56561    0.07704    0.56430    0.07661    0.56343    0.07617    0.56300    0.07487    0.56256    0.07313    0.56256    0.07182    0.56300    0.07139    0.56343    0.07095    0.56430    0.07095    0.56561    0.07139    0.56648    0.07226    0.56735    0.07356 [...]
  11     380      17    0.08227    0.57170    0.08096    0.57127    0.08009    0.56996    0.07966    0.56779    0.07966    0.56648    0.08009    0.56430    0.08096    0.56300    0.08227    0.56256    0.08314    0.56256    0.08444    0.56300    0.08531    0.56430    0.08575    0.56648    0.08575    0.56779    0.08531    0.56996    0.08444    0.57127    0.08314    0.57170    0.08227    0.57170
  11     116       5    0.08923    0.56343    0.08880    0.56300    0.08923    0.56256    0.08967    0.56300    0.08923    0.56343
- 11     732      33    0.90859    0.12797    0.90859    0.12797    0.90859    0.12797    0.92002    0.12797    0.90859    0.12797    0.90859    0.18287    0.92002    0.18287    0.90859    0.18287    0.90859    0.23776    0.92002    0.23776    0.90859    0.23776    0.90859    0.29266    0.92002    0.29266    0.90859    0.29266    0.90859    0.34755    0.92002    0.34755    0.90859    0.34755    0.90859    0.40245    0.92002    0.40245    0.90859    0.40245    0.90859    0.45734    0.92002 [...]
- 11     732      33    0.18232    0.62203    0.10969    0.62203    0.18232    0.62203    0.18232    0.63346    0.18232    0.62203    0.26301    0.62203    0.26301    0.63346    0.26301    0.62203    0.34371    0.62203    0.34371    0.63346    0.34371    0.62203    0.42441    0.62203    0.42441    0.63346    0.42441    0.62203    0.50511    0.62203    0.50511    0.63346    0.50511    0.62203    0.58580    0.62203    0.58580    0.63346    0.58580    0.62203    0.66650    0.62203    0.66650 [...]
- 11     732      33    0.18232    0.12797    0.10969    0.12797    0.18232    0.12797    0.18232    0.11654    0.18232    0.12797    0.26301    0.12797    0.26301    0.11654    0.26301    0.12797    0.34371    0.12797    0.34371    0.11654    0.34371    0.12797    0.42441    0.12797    0.42441    0.11654    0.42441    0.12797    0.50511    0.12797    0.50511    0.11654    0.50511    0.12797    0.58580    0.12797    0.58580    0.11654    0.58580    0.12797    0.66650    0.12797    0.66650 [...]
+ 11     732      33    0.90859    0.12797    0.90859    0.12797    0.92002    0.12797    0.90859    0.12797    0.90859    0.18287    0.92002    0.18287    0.90859    0.18287    0.90859    0.23776    0.92002    0.23776    0.90859    0.23776    0.90859    0.29266    0.92002    0.29266    0.90859    0.29266    0.90859    0.34755    0.92002    0.34755    0.90859    0.34755    0.90859    0.40245    0.92002    0.40245    0.90859    0.40245    0.90859    0.45734    0.92002    0.45734    0.90859 [...]
+ 11     732      33    0.18232    0.62203    0.18232    0.62203    0.18232    0.63346    0.18232    0.62203    0.26301    0.62203    0.26301    0.63346    0.26301    0.62203    0.34371    0.62203    0.34371    0.63346    0.34371    0.62203    0.42441    0.62203    0.42441    0.63346    0.42441    0.62203    0.50511    0.62203    0.50511    0.63346    0.50511    0.62203    0.58580    0.62203    0.58580    0.63346    0.58580    0.62203    0.66650    0.62203    0.66650    0.63346    0.66650 [...]
+ 11     732      33    0.18232    0.12797    0.18232    0.12797    0.18232    0.11654    0.18232    0.12797    0.26301    0.12797    0.26301    0.11654    0.26301    0.12797    0.34371    0.12797    0.34371    0.11654    0.34371    0.12797    0.42441    0.12797    0.42441    0.11654    0.42441    0.12797    0.50511    0.12797    0.50511    0.11654    0.50511    0.12797    0.58580    0.12797    0.58580    0.11654    0.58580    0.12797    0.66650    0.12797    0.66650    0.11654    0.66650 [...]
  11      94       4    0.17622    0.10658    0.17709    0.10701    0.17840    0.10832    0.17840    0.09918
  11     380      17    0.18623    0.10832    0.18493    0.10788    0.18406    0.10658    0.18362    0.10440    0.18362    0.10309    0.18406    0.10092    0.18493    0.09961    0.18623    0.09918    0.18710    0.09918    0.18841    0.09961    0.18928    0.10092    0.18972    0.10309    0.18972    0.10440    0.18928    0.10658    0.18841    0.10788    0.18710    0.10832    0.18623    0.10832
  11     336      15    0.33718    0.10832    0.34197    0.10832    0.33936    0.10484    0.34066    0.10484    0.34153    0.10440    0.34197    0.10397    0.34241    0.10266    0.34241    0.10179    0.34197    0.10048    0.34110    0.09961    0.33979    0.09918    0.33849    0.09918    0.33718    0.09961    0.33675    0.10005    0.33631    0.10092
@@ -416,63 +416,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
  11      72       3    0.00914    0.04845    0.00914    0.04845    0.05713    0.04845
  21       6       1
  25       6       1
- 11     380      17    0.07160    0.08153    0.07125    0.08222    0.07021    0.08257    0.06917    0.08257    0.06812    0.08222    0.06777    0.08153    0.06812    0.08083    0.06882    0.08048    0.07056    0.08013    0.07125    0.07979    0.07160    0.07909    0.07160    0.07874    0.07125    0.07804    0.07021    0.07770    0.06917    0.07770    0.06812    0.07804    0.06777    0.07874
- 11      50       2    0.07404    0.08501    0.07404    0.07770
- 11     160       7    0.07404    0.08118    0.07508    0.08222    0.07578    0.08257    0.07683    0.08257    0.07752    0.08222    0.07787    0.08118    0.07787    0.07770
- 11     380      17    0.08205    0.08257    0.08135    0.08222    0.08066    0.08153    0.08031    0.08048    0.08031    0.07979    0.08066    0.07874    0.08135    0.07804    0.08205    0.07770    0.08309    0.07770    0.08379    0.07804    0.08449    0.07874    0.08484    0.07979    0.08484    0.08048    0.08449    0.08153    0.08379    0.08222    0.08309    0.08257    0.08205    0.08257
- 11      50       2    0.08727    0.08257    0.08727    0.07770
- 11     116       5    0.08727    0.08048    0.08762    0.08153    0.08832    0.08222    0.08901    0.08257    0.09006    0.08257
- 11     116       5    0.09215    0.08501    0.09215    0.07909    0.09250    0.07804    0.09319    0.07770    0.09389    0.07770
- 11      50       2    0.09110    0.08257    0.09354    0.08257
- 11     116       5    0.10190    0.08501    0.10190    0.07909    0.10225    0.07804    0.10294    0.07770    0.10364    0.07770
- 11      50       2    0.10085    0.08257    0.10329    0.08257
- 11      50       2    0.10538    0.08257    0.10677    0.07770
- 11      50       2    0.10817    0.08257    0.10677    0.07770
- 11      50       2    0.10817    0.08257    0.10956    0.07770
- 11      50       2    0.11095    0.08257    0.10956    0.07770
- 11     380      17    0.11478    0.08257    0.11409    0.08222    0.11339    0.08153    0.11304    0.08048    0.11304    0.07979    0.11339    0.07874    0.11409    0.07804    0.11478    0.07770    0.11583    0.07770    0.11652    0.07804    0.11722    0.07874    0.11757    0.07979    0.11757    0.08048    0.11722    0.08153    0.11652    0.08222    0.11583    0.08257    0.11478    0.08257
- 11      50       2    0.12001    0.08083    0.12627    0.08083
- 11      50       2    0.12906    0.08501    0.12906    0.07770
- 11     116       5    0.13150    0.08501    0.13184    0.08466    0.13219    0.08501    0.13184    0.08536    0.13150    0.08501
- 11      50       2    0.13184    0.08257    0.13184    0.07770
- 11      50       2    0.13463    0.08257    0.13463    0.07770
- 11     160       7    0.13463    0.08118    0.13568    0.08222    0.13637    0.08257    0.13742    0.08257    0.13811    0.08222    0.13846    0.08118    0.13846    0.07770
- 11     380      17    0.14090    0.08048    0.14508    0.08048    0.14508    0.08118    0.14473    0.08188    0.14438    0.08222    0.14368    0.08257    0.14264    0.08257    0.14194    0.08222    0.14125    0.08153    0.14090    0.08048    0.14090    0.07979    0.14125    0.07874    0.14194    0.07804    0.14264    0.07770    0.14368    0.07770    0.14438    0.07804    0.14508    0.07874
- 11     116       5    0.06847    0.07331    0.06847    0.06739    0.06882    0.06634    0.06951    0.06600    0.07021    0.06600
- 11      50       2    0.06742    0.07087    0.06986    0.07087
- 11     116       5    0.07195    0.07331    0.07230    0.07296    0.07265    0.07331    0.07230    0.07366    0.07195    0.07331
- 11      50       2    0.07230    0.07087    0.07230    0.06600
- 11     116       5    0.07543    0.07331    0.07543    0.06739    0.07578    0.06634    0.07648    0.06600    0.07717    0.06600
- 11      50       2    0.07439    0.07087    0.07683    0.07087
- 11      50       2    0.07926    0.07331    0.07926    0.06600
- 11     380      17    0.08170    0.06878    0.08588    0.06878    0.08588    0.06948    0.08553    0.07017    0.08518    0.07052    0.08449    0.07087    0.08344    0.07087    0.08275    0.07052    0.08205    0.06983    0.08170    0.06878    0.08170    0.06809    0.08205    0.06704    0.08275    0.06634    0.08344    0.06600    0.08449    0.06600    0.08518    0.06634    0.08588    0.06704
- 11     116       5    0.09598    0.07331    0.09528    0.07331    0.09459    0.07296    0.09424    0.07192    0.09424    0.06600
- 11      50       2    0.09319    0.07087    0.09563    0.07087
- 11     380      17    0.09946    0.07087    0.09876    0.07052    0.09807    0.06983    0.09772    0.06878    0.09772    0.06809    0.09807    0.06704    0.09876    0.06634    0.09946    0.06600    0.10050    0.06600    0.10120    0.06634    0.10190    0.06704    0.10225    0.06809    0.10225    0.06878    0.10190    0.06983    0.10120    0.07052    0.10050    0.07087    0.09946    0.07087
- 11      50       2    0.10468    0.07087    0.10468    0.06600
- 11     116       5    0.10468    0.06878    0.10503    0.06983    0.10573    0.07052    0.10642    0.07087    0.10747    0.07087
- 11     116       5    0.11513    0.07331    0.11513    0.06739    0.11548    0.06634    0.11617    0.06600    0.11687    0.06600
- 11      50       2    0.11409    0.07087    0.11652    0.07087
- 11      50       2    0.11896    0.07331    0.11896    0.06600
- 11     160       7    0.11896    0.06948    0.12001    0.07052    0.12070    0.07087    0.12175    0.07087    0.12244    0.07052    0.12279    0.06948    0.12279    0.06600
- 11     380      17    0.12523    0.06878    0.12941    0.06878    0.12941    0.06948    0.12906    0.07017    0.12871    0.07052    0.12801    0.07087    0.12697    0.07087    0.12627    0.07052    0.12558    0.06983    0.12523    0.06878    0.12523    0.06809    0.12558    0.06704    0.12627    0.06634    0.12697    0.06600    0.12801    0.06600    0.12871    0.06634    0.12941    0.06704
- 11     380      17    0.13881    0.07087    0.13811    0.07052    0.13742    0.06983    0.13707    0.06878    0.13707    0.06809    0.13742    0.06704    0.13811    0.06634    0.13881    0.06600    0.13985    0.06600    0.14055    0.06634    0.14125    0.06704    0.14159    0.06809    0.14159    0.06878    0.14125    0.06983    0.14055    0.07052    0.13985    0.07087    0.13881    0.07087
- 11      50       2    0.14334    0.07087    0.14543    0.06600
- 11      50       2    0.14751    0.07087    0.14543    0.06600
- 11     380      17    0.14926    0.06878    0.15343    0.06878    0.15343    0.06948    0.15309    0.07017    0.15274    0.07052    0.15204    0.07087    0.15100    0.07087    0.15030    0.07052    0.14960    0.06983    0.14926    0.06878    0.14926    0.06809    0.14960    0.06704    0.15030    0.06634    0.15100    0.06600    0.15204    0.06600    0.15274    0.06634    0.15343    0.06704
- 11      50       2    0.15587    0.07087    0.15587    0.06600
- 11     116       5    0.15587    0.06878    0.15622    0.06983    0.15692    0.07052    0.15761    0.07087    0.15866    0.07087
- 11      50       2    0.16040    0.07331    0.16040    0.06600
- 11      50       2    0.16701    0.07087    0.16701    0.06600
- 11     314      14    0.16701    0.06983    0.16632    0.07052    0.16562    0.07087    0.16458    0.07087    0.16388    0.07052    0.16318    0.06983    0.16284    0.06878    0.16284    0.06809    0.16318    0.06704    0.16388    0.06634    0.16458    0.06600    0.16562    0.06600    0.16632    0.06634    0.16701    0.06704
- 11      50       2    0.16910    0.07087    0.17119    0.06600
- 11     138       6    0.17328    0.07087    0.17119    0.06600    0.17050    0.06460    0.16980    0.06391    0.16910    0.06356    0.16876    0.06356
- 11      50       2    0.18094    0.07331    0.18094    0.06600
- 11     116       5    0.18338    0.07331    0.18373    0.07296    0.18408    0.07331    0.18373    0.07366    0.18338    0.07331
- 11      50       2    0.18373    0.07087    0.18373    0.06600
- 11      50       2    0.18652    0.07087    0.18652    0.06600
- 11     160       7    0.18652    0.06948    0.18756    0.07052    0.18826    0.07087    0.18930    0.07087    0.19000    0.07052    0.19035    0.06948    0.19035    0.06600
- 11     380      17    0.19278    0.06878    0.19696    0.06878    0.19696    0.06948    0.19661    0.07017    0.19627    0.07052    0.19557    0.07087    0.19452    0.07087    0.19383    0.07052    0.19313    0.06983    0.19278    0.06878    0.19278    0.06809    0.19313    0.06704    0.19383    0.06634    0.19452    0.06600    0.19557    0.06600    0.19627    0.06634    0.19696    0.06704
  11      50       2    0.06812    0.05210    0.06812    0.04479
  11     160       7    0.06812    0.04827    0.06917    0.04932    0.06986    0.04966    0.07091    0.04966    0.07160    0.04932    0.07195    0.04827    0.07195    0.04479
  11     380      17    0.07439    0.04758    0.07857    0.04758    0.07857    0.04827    0.07822    0.04897    0.07787    0.04932    0.07717    0.04966    0.07613    0.04966    0.07543    0.04932    0.07474    0.04862    0.07439    0.04758    0.07439    0.04688    0.07474    0.04583    0.07543    0.04514    0.07613    0.04479    0.07717    0.04479    0.07787    0.04514    0.07857    0.04583
diff --git a/bench/run_all b/bench/run_all
index 3a07f09..32e69a5 100755
--- a/bench/run_all
+++ b/bench/run_all
@@ -129,7 +129,7 @@ echo " " > $ncdump_file
 setenv FER_EXTERNAL_FUNCTIONS $efdir
 
 # set up the binary unformatted stream test file as a machine-specific link
-set machine_stream = "stream10by5_{$machine}.unf"
+set machine_stream = "data/stream10by5_{$machine}.unf"
 if ( ! -e  $machine_stream ) then
    echo File $machine_stream does not exist.
    echo Benchmark bn420_stream will fail.
@@ -158,9 +158,9 @@ ln -s $machine_stream stream_data_link.unf
 rm -f bn_test_stream.jnl
 # most everything little-endian now
 # if ($machine == "linux" || $machine == "alp" || $machine == "x86_64-linux" || $machine == "ia64-linux") then
-    ln -s bn_test_stream_little.jnl bn_test_stream.jnl
+    ln -s v5jnls/bn_test_stream_little.jnl bn_test_stream.jnl
 # else
-#     ln -s bn_test_stream_big.jnl bn_test_stream.jnl
+#     ln -s v5jnls/bn_test_stream_big.jnl bn_test_stream.jnl
 # endif
 
 #Set up for metafile/gif testing
@@ -187,7 +187,7 @@ echo "ncdump output will be in $ncdump_file, and appended to this log file " >>&
 
 #set up a generic data environment
 echo "***** Restricting Ferret paths to bench directory *****" >>&$log_file
-source bench_environment >>&$log_file
+source bench_environment.csh >>&$log_file
 Fenv >>&$log_file
 
 # put a record of this benchmark run into the benchmark log file
@@ -220,14 +220,7 @@ echo "Beginning at $now" >>&$log_file
 cp $log_file $err_file
 echo "Beginning at $now"
 
-# $fver <bn230_all.jnl >>&$log_file        ! problem with missing lines in log
-# $fver <bn230_all_shell.jnl >>&$log_file  ! mixes error lines erratically
-#($fver <bn230_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <bn300_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <bn301_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <bn311_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <{$bver}_all_shell.jnl >>$log_file) >>&$err_file
-(($fver -script bn_all_shell.jnl) >>$log_file) >>&$err_file
+($fver -script genjnls/bn_all_shell.jnl >>$log_file) >>&$err_file
 
 # check status before continuing *kob* 4/98
 if ($status) then
@@ -237,7 +230,7 @@ endif
 
 # 5/05 *acm* run tests of externally-linked external functions
 if ( $do_shared_obj == "y" ) then
-  ($fver <bn_all_ef_shell.jnl >>$log_file) >>&$err_file
+  ($fver < genjnls/bn_all_ef_shell.jnl >>$log_file) >>&$err_file
 endif
 
 # Append the ncdump output file to the log file
@@ -250,18 +243,6 @@ echo  "end of ncdump output" >>&$log_file
 echo  " " >>&$log_file
 mv $ncdump_file $ncdump_log
 
-# Now, lets restart ferret and run the bug fix journal file
-# 3.4.98 - moved this to bn491_all *kob*
-#($fver <{$bver}_bug_fixes.jnl >>$log_file) >>&$err_file
-
-# *kob* 11/96 - test out batch ability of ferret
-#set hold_display = $DISPLAY
-#setenv DISPLAY ralf
-#echo "Display now set to "$DISPLAY >>&$log_file
-#($fver < bn430_batch.jnl >> $log_file) >>&$err_file
-#setenv DISPLAY $hold_display
-#echo "Display now set to "$DISPLAY >>&$log_file
-
 echo "about to run test of .ferret script"
 if (-e $HOME/.ferret) then 
   rm -f ./keep.ferret
@@ -270,7 +251,7 @@ if (-e $HOME/.ferret) then
 endif
 
 cp -f ferret_startup $HOME/.ferret
-($fver  <bn_startupfile_shell.jnl >> $log_file) >>& $err_file
+($fver  < genjnls/bn_startupfile_shell.jnl >> $log_file) >>& $err_file
 rm -f $HOME/.ferret
 
 if (-e keep.ferret) then 
@@ -280,11 +261,11 @@ endif
 set hold_display = $DISPLAY
 unsetenv DISPLAY
 echo "Display no longer set, about to run batch gif test"
-($fver -gif <bn_gif_shell.jnl >> $log_file) >>& $err_file
+($fver -gif < genjnls/bn_gif_shell.jnl >> $log_file) >>& $err_file
 echo "Display still not set, about to run batch ps test"
-($fver -batch bnplot.ps <bn_ps_shell.jnl >> $log_file) >>& $err_file
+($fver -batch bnplot.ps < genjnls/bn_ps_shell.jnl >> $log_file) >>& $err_file
 echo "Display still not set, about to run batch metafile test"
-($fver -batch bat.plt <bn_batch_metafile_shell.jnl >> $log_file) >>& $err_file
+($fver -batch bat.plt < genjnls/bn_batch_metafile_shell.jnl >> $log_file) >>& $err_file
 setenv DISPLAY $hold_display
 #echo "Display now set to "$DISPLAY >>&$log_file
 
diff --git a/bench/test_results/bn_axis_vs.gif b/bench/test_results/bn_axis_vs.gif
index 738fd06..e90f928 100644
Binary files a/bench/test_results/bn_axis_vs.gif and b/bench/test_results/bn_axis_vs.gif differ
diff --git a/bench/test_results/bn_contour_conset.gif b/bench/test_results/bn_contour_conset.gif
index 072f1c3..26e4215 100644
Binary files a/bench/test_results/bn_contour_conset.gif and b/bench/test_results/bn_contour_conset.gif differ
diff --git a/bench/test_results/bn_hovmuller_overlays.gif b/bench/test_results/bn_hovmuller_overlays.gif
index 83df73d..95d0cb7 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_labels_on_taxis.gif b/bench/test_results/bn_labels_on_taxis.gif
index 57d8749..6dbed52 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_ribbon_vlog.gif b/bench/test_results/bn_ribbon_vlog.gif
index 3a3f053..b5a1c82 100644
Binary files a/bench/test_results/bn_ribbon_vlog.gif and b/bench/test_results/bn_ribbon_vlog.gif differ
diff --git a/bench/test_results/bn_subspan_mod_strides.gif b/bench/test_results/bn_subspan_mod_strides.gif
index 4121fe6..ba3c949 100644
Binary files a/bench/test_results/bn_subspan_mod_strides.gif and b/bench/test_results/bn_subspan_mod_strides.gif differ
diff --git a/bench/test_results/bn_vs_const_value.gif b/bench/test_results/bn_vs_const_value.gif
index a22c027..4efb96e 100644
Binary files a/bench/test_results/bn_vs_const_value.gif and b/bench/test_results/bn_vs_const_value.gif differ
diff --git a/bench/test_results/bnplot_2.gif b/bench/test_results/bnplot_2.gif
index 1ad19de..4ad3162 100644
Binary files a/bench/test_results/bnplot_2.gif and b/bench/test_results/bnplot_2.gif differ
diff --git a/bench/test_results/bnplot_3.gif b/bench/test_results/bnplot_3.gif
index 0f19756..3dad471 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/err700_key.gif b/bench/test_results/err700_key.gif
index e003db8..cae182e 100644
Binary files a/bench/test_results/err700_key.gif and b/bench/test_results/err700_key.gif differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index 0ca77c4..ee2160b 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,5 +1,4 @@
 *** Running ferret script: bn_syntax.jnl
-           *** 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
@@ -126,14 +125,14 @@ 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, in script ./bn_if.sub
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/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, in script ./bn_if.jnl
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/bn_if.jnl
 *** Running ferret script: bn_expressions.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
@@ -492,7 +491,7 @@ plot/xlimits=5:5 i
 *** Running ferret script: bn_mc.jnl
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
-             Data set: ./coads_clim_bad_delta.des
+             Data set: ./data/coads_clim_bad_delta.des
 set data coads_clim_bad_delta.des
  **TMAP ERR: error in line definition
              A gap or overlap exists in time axis
@@ -623,8 +622,10 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
-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 {6,6}
+ **ERROR: improper grid or axis definition: unrepairable repeated axis coords
+define axis/from/x/name=xax/edges {6,6}
  **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 ...
@@ -974,12 +975,12 @@ Replacing definition of axis TAX
 Replacing definition of grid G1
  **TMAP ERR: syntax error in string
              Unrecognized field type: DA2
-             Data set: ./bn_delimited_read_date_time.dat
+             Data set: ./data/bn_delimited_read_date_time.dat
            *** 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
+             Data set: ./data/bn_delimited_read_date_time.dat
            *** 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: ,,:
@@ -1062,7 +1063,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: regarding ./data/test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
  LISTing to file longaxspace.dat
 *** Running ferret script: bn542_bug_fixes.jnl
@@ -1082,7 +1083,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: regarding ./test_axes.nc ...
+           *** NOTE: regarding ./data/test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
            *** NOTE: Axis is in use by grid (G###)
@@ -1218,9 +1219,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1423
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
            *** NOTE: A dummy axis of subscripts will be used
-           *** NOTE: Coordinates missing on axis LATITUDE at subscript -1423
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
            *** 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
@@ -2072,7 +2073,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME4
+Replacing definition of axis TIME5
            *** NOTE: grid GSQ1 used by data set coads_climatology
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
@@ -2135,9 +2136,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modnbd.jnl
 *** Running ferret script: bn_fifty_files.jnl
-           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -169
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
            *** NOTE: A dummy axis of subscripts will be used
-           *** NOTE: Coordinates missing on axis LATITUDE at subscript -169
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
            *** 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
@@ -2155,7 +2156,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
            *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
            *** NOTE: They will not be convertible:
-           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: regarding ./data/climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
@@ -2943,20 +2944,12 @@ ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_NaN_note.jnl
-           *** 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
+           *** 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: 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
+           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
 *** Running ferret script: bn671_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3001,7 +2994,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  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: ./v6jnls/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
@@ -3097,7 +3090,118 @@ Bailing out of external function "eofsvd_tfunc":
 	There are no spatial locations having complete time series.
  **ERROR: error in external function
 list eofsvd_tfunc(spacegap)
+Replacing definition of axis XAXIS
+
+Bailing out of external function "eof_stat":
+	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+load eofs
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v2)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+load tafs
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v2)
 *** Running ferret script: bn_eof_simple2.jnl
+
+Bailing out of external function "eof_stat":
+	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+load eofs
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_space":
+	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v2)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+load tafs
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v2)
 *** Running ferret script: bn_interpolate_6d.jnl
 *** Running ferret script: bn_regrid_6d.jnl
  PERMANENT data cleared from memory
@@ -3202,12 +3306,8 @@ ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_descr_4digit.jnl
 *** Running ferret script: bn_axis_outtype.jnl
  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
@@ -3415,7 +3515,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: regarding ./climatological_axes.cdf ...
+           *** NOTE: regarding ./data/climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3716,9 +3816,9 @@ list f
  LISTing to file bn_spawn_size12.dat
  LISTing to file bn_spawn_size14.dat
 *** Running ferret script: bn_polygon_log.jnl
- **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+ **ERROR: value out of legal range: 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
+ **ERROR: value out of legal range: 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
  PERMANENT data cleared from memory
@@ -3971,7 +4071,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: error in axis attributes
              Calendar definitions on T and F axes must match
-             Data file: ./ft_cal_one.nc
+             Data file: ./data/ft_cal_one.nc
 SET DAT/FORM=CDF ft_cal_mixed.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4495,14 +4595,14 @@ Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
-           *** NOTE: unrepairable repeated axis coords on axis xax at subscript 1
+           *** NOTE: unrepairable repeated axis coords on axis xax at subscript 2
            *** NOTE: A dummy axis of subscripts will be used
-           *** NOTE: unrepairable repeated axis coords on axis yax at subscript 1
+           *** NOTE: unrepairable repeated axis coords on axis yax at subscript 2
            *** 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
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v7jnls/unclosed_if.sub
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
@@ -5142,6 +5242,63 @@ ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 ooooooooooooooooooooooooooooooooooooooooooo
+*** Running ferret script: bn722_bug_fixes.jnl
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from 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_tseries_modulo.jnl
+*** Running ferret script: bn_huge_axis.jnl
+ LISTing to file a.nc
+*** Running ferret script: bn_save_as_global.jnl
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ **ERROR: invalid command: Multi-valued Global string attributes not implemented
+          Variable: multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+          Variable: SST
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+          Variable: SST
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
 *** Running ferret script: bn_gif.jnl
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index 98b0ebe..c74099d 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -279,6 +279,10 @@ Benchmark scripts that will be run:
    bn_transp_choose.jnl
    bn_iin_regrid.jnl
    bn721_bug_fixes.jnl
+   bn722_bug_fixes.jnl
+   bn_tseries_modulo.jnl
+   bn_huge_axis.jnl
+   bn_save_as_global.jnl
    bn_gif.jnl
    bn_ps.jnl
    bn_all_ef.jnl
@@ -304,10 +308,10 @@ Benchmark scripts that will be run:
 USE gtbc011
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
 SHOW DATA
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  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
@@ -320,7 +324,7 @@ SHOW DATA
  
 SHOW DATA/VARIABLES
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -350,9 +354,9 @@ SHOW DATA/VARIABLES
  
   time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
  
-SHOW DATA/FILES
+SHOW DATA/MEMBERS
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  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
@@ -365,7 +369,7 @@ SHOW DATA/FILES
  
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -402,23 +406,23 @@ USE gtbc011
 USE gt4d011
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf
-    2> ./gt4d011.cdf  (default)
+    1> ./data/gtbc011.cdf
+    2> ./data/gt4d011.cdf  (default)
 SHOW DATA/BRIEF gtbc011
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
 ! ... save and restore data set
 SET DATA 1
 SET DATA/SAVE
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
-    2> ./gt4d011.cdf
+    1> ./data/gtbc011.cdf  (default)
+    2> ./data/gt4d011.cdf
 SET DATA 2
 SHOW DATA/BRIEF
      currently SET data sets:
-    1> ./gtbc011.cdf
-    2> ./gt4d011.cdf  (default)
+    1> ./data/gtbc011.cdf
+    2> ./data/gt4d011.cdf  (default)
 SET DATA/RESTORE
 CANCEL DATA/ALL
 ! ... EZ data sets
@@ -1069,7 +1073,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1]
              TIME: 15-MAR-1983 10:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -1086,7 +1090,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u]
              TIME: 15-MAR-1983 10:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -1105,7 +1109,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u[d=2]]
              TIME: 17-AUG-1982 12:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 1
@@ -1119,7 +1123,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=gtbc011,g=u[d=gt4d011]]
              TIME: 17-AUG-1982 12:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtbc011.cdf
+             DATA SET: ./data/gtbc011.cdf
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 1
@@ -1761,7 +1765,7 @@ show var/d=clim_airt_lev
      A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
 show data clim_airt_lev
      currently SET data sets:
-    1> ./clim_airt_lev.cdf  (default)
+    1> ./data/clim_airt_lev.cdf  (default)
  name     title                             I         J         K         L
  AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
@@ -1842,7 +1846,7 @@ set var/titl=test4 t4[d=snoopy.dat]
 set var/titl=test3 t3[d=snoopy.dat]
 show data
      currently SET data sets:
-    1> ./clim_airt_lev.cdf
+    1> ./data/clim_airt_lev.cdf
  name     title                             I         J         K         L
  AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
@@ -1855,7 +1859,7 @@ show data
  
 show data/full 1
      currently SET data sets:
-    1> ./clim_airt_lev.cdf
+    1> ./data/clim_airt_lev.cdf
  
  name     title                             I         J         K         L
  AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
@@ -9694,7 +9698,7 @@ list a24[g=g48]-a48
 FILE EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
@@ -9715,7 +9719,7 @@ LIST V1
  5   / 5:  0.4780
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  V1       V1                               1:5       ...       ...       ...
  
@@ -9724,7 +9728,7 @@ SHOW DATA
 FILE/VAR="X1,X2" EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
@@ -9738,7 +9742,7 @@ SHOW DATA/FULL
  /SKIP = 0
  /COLUMNS = 2
 LIST X1,X2
-             DATA SET: ./EZ.DAT
+             DATA SET: ./data/EZ.DAT
              X: 0.5 to 5.5
  Column  1: X1
  Column  2: X2
@@ -9750,7 +9754,7 @@ LIST X1,X2
 5   / 5:  0.4780  0.5337
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:5       ...       ...       ...
  X2       X2                               1:5       ...       ...       ...
@@ -9760,7 +9764,7 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
@@ -9794,7 +9798,7 @@ LIST X1
  15   / 15:  0.4690
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:15      ...       ...       ...
  X2       X2                               1:15      ...       ...       ...
@@ -9804,15 +9808,15 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:9       ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:9.5  
+ X2       X2                               1:9       ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:9.5  
  
  /FORMAT = FREE
  /SKIP = 2
@@ -9832,7 +9836,7 @@ LIST X1
  9   / 9:  0.4690
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:9       ...       ...       ...
  X2       X2                               1:9       ...       ...       ...
@@ -9842,15 +9846,15 @@ SHOW DATA
 FILE/VAR="X1,-,X2"/COLUMNS=6/SKIP=2 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:9       ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:9.5  
+ X2       X2                               1:9       ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:9.5  
  
  /FORMAT = FREE
  /SKIP = 2
@@ -9867,7 +9871,7 @@ LIST X1
  6   / 6:  0.5147
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:6       ...       ...       ...
  X2       X2                               1:6       ...       ...       ...
@@ -9877,15 +9881,15 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2/FORMAT=(3(F14.0,F7.0)) EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:9       ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:9.5  
+ X2       X2                               1:9       ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:9.5  
  
  /FORMAT = (3(F14.0,F7.0))
  /SKIP = 2
@@ -9905,7 +9909,7 @@ LIST X1
  9   / 9:  0.4690
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:9       ...       ...       ...
  X2       X2                               1:9       ...       ...       ...
@@ -9915,15 +9919,15 @@ SHOW DATA
 FILE/VAR="X1,X2"/COLUMNS=6/SKIP=1/FORMAT="(3(F14.0,F7.0)/)" EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
- X1       X1                               1:15      ...       ...       ...
+ X1       X1                               1:12      ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...
+             X=0.5:12.5  
+ X2       X2                               1:12      ...       ...       ...
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:15.5  
+             X=0.5:12.5  
  
  /FORMAT = (3(F14.0,F7.0)/)
  /SKIP = 1
@@ -9940,7 +9944,7 @@ LIST X1
  6   / 6:  0.4700
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:6       ...       ...       ...
  X2       X2                               1:6       ...       ...       ...
@@ -9950,7 +9954,7 @@ SHOW DATA
 SET VARIABLE/TITLE="first variable" X1
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       first variable                   1:6       ...       ...       ...
  X2       X2                               1:6       ...       ...       ...
@@ -9962,7 +9966,7 @@ DEFINE GRID/X=XEZ1/Y=EZ GEZ1
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ1 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:3       1:20480   ...       ...
@@ -9988,7 +9992,7 @@ LIST X1
  5   / 5:  0.4780  0.5150  0.4690
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:3       1:5       ...       ...
  X2       X2                               1:3       1:5       ...       ...
@@ -10002,7 +10006,7 @@ DEFINE GRID/X=XEZ2/Y=YEZ/Z=ZEZ/T=EZ GEZ2
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ2 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:1       1:3       1:2       1:20480
@@ -10030,7 +10034,7 @@ LIST X1
  2   / 2:  0.4350  0.4440  0.4700
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  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
@@ -10046,7 +10050,7 @@ DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:8       ...       ...       ...
@@ -10073,7 +10077,7 @@ LIST X1
  8   / 8:  0.0000
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:8       ...       ...       ...
  X2       X2                               1:8       ...       ...       ...
@@ -10503,8 +10507,8 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
@@ -10535,8 +10539,8 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
@@ -10713,8 +10717,8 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "25.6"
@@ -12364,7 +12368,7 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e-7
 ! multiple variable test
 set region/i=95:96/j=41:42/k=2/l=5
 LIST/FORMAT=comma/precision=5 u,v
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              LONGITUDE: 135.5W to 133.5W
              LATITUDE: 1.5S to 0.8S
              DEPTH (m): 15
@@ -14579,7 +14583,7 @@ list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijklave
 set data/format=cdf test_fil0
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -14767,7 +14771,7 @@ list/format=cdf/append/file=test_fil.cdf ijklave
 set data/format=cdf test_fil
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -14888,7 +14892,7 @@ set data reverse_axes
  
 show data/var
      currently SET data sets:
-    1> ./reverse_axes.cdf  (default)
+    1> ./data/reverse_axes.cdf  (default)
  
  name     title                             I         J         K         L
  FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
@@ -14905,7 +14909,7 @@ show data/var
  
 list/x=180 fcn_norm,fcn_rev
  WARNING: Listed variables have ambiguous coordinates on axes: Y
-             DATA SET: ./reverse_axes.cdf
+             DATA SET: ./data/reverse_axes.cdf
              LONGITUDE: 180E
  Column  1: FCN_NORM is COS(X/10)*SIN(Y/2)
  Column  2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -15095,7 +15099,7 @@ 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
              TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtsa056_1.cdf
+             DATA SET: ./data/gtsa056_1.cdf
  
  Total # of data points: 120 (6*5*2*2*1*1)
  # flagged as bad  data: 0
@@ -15124,7 +15128,7 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
              TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gtsa056_1.cdf
+             DATA SET: ./data/gtsa056_1.cdf
  
  Total # of data points: 120 (6*5*2*2*1*1)
  # flagged as bad  data: 0
@@ -19248,7 +19252,7 @@ cancel data stream_data_link.unf
 !     - 11/06/97 - added a set mode/last verify
 CAN MODE VERIFY
      currently SET data sets:
-    1> ./coads_clim.des  (default)
+    1> ./data/coads_clim.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
@@ -19306,7 +19310,7 @@ CAN MODE VERIFY
              TIME: 01-JAN-1900 00:45 to 02-JUL-1900 15:40
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_clim.des
+             DATA SET: ./data/coads_clim.des
  
  Total # of data points: 97200 (180*90*1*6*1*1)
  # flagged as bad  data: 44263
@@ -19315,7 +19319,7 @@ CAN MODE VERIFY
  Mean    value: 17.806 (unweighted average)
  Standard deviation: 9.6933
      currently SET data sets:
-    1> ./coads_clim.des
+    1> ./data/coads_clim.des
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
@@ -19324,7 +19328,7 @@ CAN MODE VERIFY
  
   time range: 16-JAN-1900 06:00 to 17-JUN-1900 10:25
  
-    2> ./coads_clim_irreg.des  (default)
+    2> ./data/coads_clim_irreg.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
@@ -19373,7 +19377,7 @@ CAN MODE VERIFY
              TIME: 01-JAN-1900 00:45 to 02-JUL-1900 15:40
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_clim_irreg.des
+             DATA SET: ./data/coads_clim_irreg.des
  
  Total # of data points: 48600 (180*90*1*3*1*1)
  # flagged as bad  data: 21459
@@ -19382,7 +19386,7 @@ CAN MODE VERIFY
  Mean    value: 17.359 (unweighted average)
  Standard deviation: 9.8799
      currently SET data sets:
-    1> ./coads_clim_missing_step1.des  (default)
+    1> ./data/coads_clim_missing_step1.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
@@ -19392,7 +19396,7 @@ CAN MODE VERIFY
   time range: 16-JAN-1900 06:00 to 17-MAY-1900 23:56
  
      currently SET data sets:
-    1> ./coads_clim_missing_stepN.des  (default)
+    1> ./data/coads_clim_missing_stepN.des  (default)
      COAD
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
@@ -23385,7 +23389,7 @@ set mem /size=10
 use weird_name1.cdf
 sh data
      currently SET data sets:
-    1> ./weird_name1.cdf  (default)
+    1> ./data/weird_name1.cdf  (default)
  name     title                             I         J         K         L
  v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
@@ -26516,7 +26520,7 @@ cancel memory/all
  
 SHOW DATA
      currently SET data sets:
-    1> ./bn_strides.cdf  (default)
+    1> ./data/bn_strides.cdf  (default)
  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
@@ -27337,7 +27341,7 @@ canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  5 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  dealloc  dynamic grid (G###)          (AX###)   YUNEVEN   ZAX1_6    TAX1_4
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  -DELETE UNE-NVAR M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  -DELETE UNE-NVAR M:  6 dset:   1 I:      1      9  J:    1    1  K:    1    1  L:      1      1
  
@@ -27430,7 +27434,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
@@ -27521,7 +27525,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -27622,7 +27626,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
@@ -27720,7 +27724,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
@@ -27818,7 +27822,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
@@ -27916,7 +27920,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28017,7 +28021,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28066,7 +28070,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28100,7 +28104,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28134,7 +28138,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
@@ -28166,7 +28170,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/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
@@ -28201,7 +28205,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  3 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
@@ -28233,7 +28237,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28267,7 +28271,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M:  6 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
 *** Running ferret script: bn_non_COARDS_netCDF.jnl
 ! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
@@ -28279,7 +28283,7 @@ use non_COARDS
  
 show data
      currently SET data sets:
-    1> ./non_COARDS.cdf  (default)
+    1> ./data/non_COARDS.cdf  (default)
  name     title                             I         J         K         L
  UNORDERED_AXIS
           disordered axis                  1:5       ...       ...       ...
@@ -28405,7 +28409,7 @@ show grid COADSY
  
 show data
      currently SET data sets:
-    1> ./non_COARDS.cdf  (default)
+    1> ./data/non_COARDS.cdf  (default)
  name     title                             I         J         K         L
  UNORDERED_AXIS
           disordered axis                  1:5       ...       ...       ...
@@ -28509,7 +28513,7 @@ stat $1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -28541,7 +28545,7 @@ stat $1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -28573,7 +28577,7 @@ stat $1[gx=xtrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28613,7 +28617,7 @@ stat $1[gx=xtrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28649,7 +28653,7 @@ stat $1x
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28681,7 +28685,7 @@ stat $1x
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28711,7 +28715,7 @@ stat $1[g=gx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28748,7 +28752,7 @@ stat $1[g=gx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -28781,7 +28785,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -28822,7 +28826,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -28855,7 +28859,7 @@ stat $1[g=gxyt]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -28891,7 +28895,7 @@ stat $1[g=gxyt]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -28922,7 +28926,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -28953,7 +28957,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -28989,7 +28993,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29020,7 +29024,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29047,7 +29051,7 @@ stat $1[x=@ave]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29079,7 +29083,7 @@ stat $1[x=@ave]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29108,7 +29112,7 @@ stat $1xave
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29140,7 +29144,7 @@ stat $1xave
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29169,7 +29173,7 @@ stat $1[x=@sbx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29202,7 +29206,7 @@ stat $1[x=@sbx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29231,7 +29235,7 @@ stat $1sbx
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29263,7 +29267,7 @@ stat $1sbx
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29300,7 +29304,7 @@ stat $1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -29332,7 +29336,7 @@ stat $1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -29364,7 +29368,7 @@ stat $1[gx=xtrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29404,7 +29408,7 @@ stat $1[gx=xtrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29440,7 +29444,7 @@ stat $1x
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29472,7 +29476,7 @@ stat $1x
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29502,7 +29506,7 @@ stat $1[g=gx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29539,7 +29543,7 @@ stat $1[g=gx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 13590 (151*90*1*1*1*1)
  # flagged as bad  data: 4962
@@ -29567,7 +29571,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29599,7 +29603,7 @@ stat $1[gx=xtrop,gy=ytrop]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29628,7 +29632,7 @@ stat $1[g=gxyt]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29660,7 +29664,7 @@ stat $1[g=gxyt]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29687,7 +29691,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29718,7 +29722,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29767,7 +29771,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29798,7 +29802,7 @@ stat $1xyt
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 6191 (151*41*1*1*1*1)
  # flagged as bad  data: 151
@@ -29828,7 +29832,7 @@ stat $1[x=@ave]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29860,7 +29864,7 @@ stat $1[x=@ave]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29889,7 +29893,7 @@ stat $1xave
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29921,7 +29925,7 @@ stat $1xave
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 90 (1*90*1*1*1*1)
  # flagged as bad  data: 12
@@ -29950,7 +29954,7 @@ stat $1[x=@sbx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -29983,7 +29987,7 @@ stat $1[x=@sbx]
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30012,7 +30016,7 @@ stat $1sbx
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30044,7 +30048,7 @@ stat $1sbx
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 7173
@@ -30948,7 +30952,7 @@ list/l=1:4 sst
  17-MAR      / 3:  28.35
  16-AUG      / 4:   ....
 list/l=1:4 jsst, nsst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              TIME: 01-JAN 00:00 to 16-APR 12:45 JULIAN
              LONGITUDE: 179E
              LATITUDE: 1S
@@ -34249,7 +34253,7 @@ let tsorted_indices = sorti( sst[i=61:66,y=39,z=0,l=2])
 let tsorted_sst = samplei(sst, tsorted_indices)
  
 list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              X: 0.5 to 6.5
              TIME: 15-FEB 16:29
  Column  1: TSORTED_INDICES[Y=39N] is SORTI( SST[I=61:66,Y=39,Z=0,L=2])
@@ -34341,7 +34345,7 @@ let tsorted_indices = sortj( sst[j=65:70,x=141,z=0,l=2])
 let tsorted_sst = samplej(sst, tsorted_indices)
  
 list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              Y: 0.5 to 6.5
              TIME: 15-FEB 16:29
  Column  1: TSORTED_INDICES[X=141E] is SORTJ( SST[J=65:70,X=141,Z=0,L=2])
@@ -34516,7 +34520,7 @@ let tsorted_indices = sortl(sst)
 let tsorted_sst = samplel(sst, tsorted_indices[x=141,y=39,z=0])
  
 list tsorted_indices, tsorted_sst
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              T: 0.5 to 3.5
              LONGITUDE: 141E
              LATITUDE: 39N
@@ -34605,7 +34609,7 @@ list vwnd
 let tsorted_indices = sortl(vwnd)
 let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
 list tsorted_indices, tsorted_wnd
-             DATA SET: ./coads_vwnd.cdf
+             DATA SET: ./data/coads_vwnd.cdf
              T: 0.5 to 60.5
              LONGITUDE: 161W
              LATITUDE: 39N
@@ -34704,7 +34708,7 @@ stat tsorted_wnd
              T: 0.5 to 60.5
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_vwnd.cdf
+             DATA SET: ./data/coads_vwnd.cdf
  
  Total # of data points: 60 (1*1*1*60*1*1)
  # flagged as bad  data: 60
@@ -34783,7 +34787,6 @@ go bench_eof
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
  
- 
 ! Test the bail-out from eof_space, eof_stat, eof_tfunc
 set mode ignore
  
@@ -34840,7 +34843,7 @@ list/i=1:2 eoftime
  15-FEB      / 2:  0.088  1.411
  17-MAR      / 3: -1.266 -0.630
  
- 
+! The functions need updating for double precision Ferret
 exit/script
  
 GO bn_reset
@@ -35366,7 +35369,7 @@ stat mapped
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./tripolar_subset.nc
+             DATA SET: ./data/tripolar_subset.nc
  
  Total # of data points: 451 (41*11*1*1*1*1)
  # flagged as bad  data: 79
@@ -35400,7 +35403,7 @@ list/L=15:20 tax_datestring(t[gt=temp],temp,"day")
  05-DEC-1982 00 / 19:"05-DEC-1982"
  11-DEC-1982 02 / 20:"11-DEC-1982"
 list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 07-NOV-1982 15:00 to 14-DEC-1982 03:00
  Column  1: TAX_DAYFRAC(T[GT=TEMP],TEMP)
  Column  2: EX#2 is TAX_DAYFRAC(T[GT=TEMP],TEMP)*24.
@@ -35412,7 +35415,7 @@ list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
 05-DEC-1982 00 / 19:  0.0000   0.00
 11-DEC-1982 02 / 20:  0.0833   2.00
 list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 07-NOV-1982 15:00 to 14-DEC-1982 03:00
  Column  1: TAX_DAY(T[GT=TEMP],TEMP)
  Column  2: TAX_JDAY(T[GT=TEMP],TEMP)
@@ -35424,7 +35427,7 @@ list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
 05-DEC-1982 00 / 19:    5.00   339.0
 11-DEC-1982 02 / 20:   11.00   345.0
 list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 07-NOV-1982 15:00 to 14-DEC-1982 03:00
  Column  1: TAX_MONTH(T[GT=TEMP],TEMP)
  Column  2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
@@ -35485,7 +35488,7 @@ use coads_climatology
 ! SAMPLEXY will interpolate to geth the result,
 ! SAMPLEIJ requires an exact match.
 list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {1,1,1})
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              X: 0.5 to 3.5
              TIME: 16-JAN 06:00
  Column  1: EX#1 is SAMPLEXY(SST,{321,323.5,325}, {1,1,1})
@@ -36886,7 +36889,7 @@ set mode logo
 ! test delimiited (spreadsheet) reads in Ferret
  
 ! look at the file
-spawn cat bn_delimited_read_1.dat
+spawn cat data/bn_delimited_read_1.dat
 col1,col2,col3,col4,col5
 one,,1.1,24S,130E,,1e1,"word 1"
     two,,2.2,24N,130W,2S,,"word 2"
@@ -36900,7 +36903,7 @@ extra line
 file/format=delim bn_delimited_read_1.dat
 show data/var
      currently SET data sets:
-    1> ./bn_delimited_read_1.dat  (default)
+    1> ./data/bn_delimited_read_1.dat  (default)
  
  name     title                             I         J         K         L
  V1       V1                               1:7       ...       ...       ...
@@ -36956,7 +36959,7 @@ show data/var
  
  /DELIMITERS="\t,\,"
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 7.5
  Column  1: V1
  Column  2: V2
@@ -36980,7 +36983,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 ! manually name the variables while still automatically analyzing data types
 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
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 7.5
  Column  1: A1 is a1
  Column  2: A2 is a2
@@ -37002,7 +37005,7 @@ list a1,a2,a3,a4,a5,a6,a7
 ! note that v3 is correctly analyzed as numeric
 file/format=delim/skip=1 bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1
  Column  2: V2 is V2 (all values missing)
@@ -37025,7 +37028,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 ! insist that all columns be treated as string
 file/format=delim/skip=1/type=text bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1
  Column  2: V2
@@ -37049,16 +37052,16 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 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)
+    1> ./data/bn_delimited_read_1.dat  (default)
  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       ...       ...       ...
+ A1       a1                               1:6       ...       ...       ...
+ A2       a2                               1:6       ...       ...       ...
+ A3       a3                               1:6       ...       ...       ...
+ A4       a4                               1:6       ...       ...       ...
+ A5       a5                               1:6       ...       ...       ...
  
 list a1,a2,a3,a4,a5
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: A1 is a1
  Column  2: A2 is a2
@@ -37076,7 +37079,7 @@ list a1,a2,a3,a4,a5
 ! insist that all columns be treated as numeric
 file/format=delim/skip=1/type=numeric bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1
  Column  2: V2
@@ -37099,7 +37102,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 ! insist that all columns be treated as latitude
 file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 0.5 to 6.5
  Column  1: V1 is V1 (degrees_north)(Latitude)
  Column  2: V2 is V2 (degrees_north)(Latitude)
@@ -37120,14 +37123,14 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 6   / 6: .... ....   ....   ....   ....   ....   .... .... ....   ....
  
 ! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
+spawn head -1 data/bn_delimited_read_1.dat
 col1,col2,col3,col4,col5
 define axis/x=1:1:1 x1
 define grid/x=x1 g1
 columns/grid=g1 bn_delimited_read_1.dat
  ! note 10 columns because auto-analysis of file doesnt stop at 1st record
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_1.dat
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 1
  Column  1: V1
  Column  2: V2
@@ -37143,7 +37146,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 I / *:    "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
 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
+             DATA SET: ./data/bn_delimited_read_1.dat
              X: 1
  Column  1: C1 is c1
  Column  2: C2 is c2
@@ -37163,14 +37166,14 @@ cancel data/all
 file/form=delimited bn_delimited_read_2.dat
 show data
      currently SET data sets:
-    1> ./bn_delimited_read_2.dat  (default)
+    1> ./data/bn_delimited_read_2.dat  (default)
  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)
+    1> ./data/bn_delimited_read_2.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:3       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37180,7 +37183,7 @@ show data
        (all values missing)
  
 list v1,v2
-             DATA SET: ./bn_delimited_read_2.dat
+             DATA SET: ./data/bn_delimited_read_2.dat
              X: 0.5 to 3.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (hours)(Time of day)
@@ -37191,7 +37194,7 @@ list v1,v2
  
 ! ==========
 ! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
+spawn cat data/bn_delimited_read_date_time.dat
 12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
 12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
 12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37201,7 +37204,7 @@ spawn cat bn_delimited_read_date_time.dat
 ! Note that record 3 has syntax errors in the first 4 fields
 columns bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37218,7 +37221,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4: "12/4/99"  "1999-03-04"  "03:00"      "16:45:36.5"  36496.  36221.   3.00  16.76
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
  V2       V2                               1:4       ...       ...       ...
@@ -37250,7 +37253,7 @@ T0 = 1-JAN-1900
  
 columns/type=date bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37267,7 +37270,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4:  36496.  36221. .... ....  36496.  36221. .... ....
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37289,7 +37292,7 @@ show data 2
  
 columns/type=time bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (hours)(Time of day)
  Column  2: V2 is V2 (hours)(Time of day)
@@ -37306,7 +37309,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4: .... ....   3.00  16.76 .... ....   3.00  16.76
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Time of day)
@@ -37328,7 +37331,7 @@ show data 2
  
 columns/type="da,dat,ti,tim,date, date, time, time"  bn_delimited_read_date_time.dat
 list v1,v2,v3,v4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37345,7 +37348,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 4   / 4:  36496.  36221.   3.00  16.76  36496.  36221.   3.00  16.76
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37367,7 +37370,7 @@ show data 2
  
 columns/type="da,-,ti,-,date,-,time,-"  bn_delimited_read_date_time.dat
 list v1,v3,v5,v7
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V3 is V3 (hours)(Time of day)
@@ -37380,7 +37383,7 @@ list v1,v3,v5,v7
 4   / 4:  36496.   3.00  36496.   3.00
 show data 2
      currently SET data sets:
-    2> ./bn_delimited_read_date_time.dat  (default)
+    2> ./data/bn_delimited_read_date_time.dat  (default)
  name     title                             I         J         K         L
  V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
@@ -37395,7 +37398,7 @@ show data 2
 ! delimiters can be used to break up individual fields
 file/form=delim/delim="/" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37407,7 +37410,7 @@ list V1,V2,V3,V4
 3   / 3:  12.00  3.000 "99x,1999-03-03x,2:00x, 15:45x,12"         3.000
 4   / 4:  12.00  4.000 "99,1999-03-04,03:00, 16:45:36.5, 12"      4.000
 ! ---
-sp cat bn_delimited_read_date_time.dat
+sp cat data/bn_delimited_read_date_time.dat
 12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
 12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
 12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37415,7 +37418,7 @@ sp cat bn_delimited_read_date_time.dat
 ! ---
 file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37432,7 +37435,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8
 4   / 4:  12.00  4.000 "99"  "1999-03-04"  "03:00"      "16:45:36.5"  12.00  4.000
  file/form=delim/delim="/,\,,-" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37451,7 +37454,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
 4   / 4:  12.00  4.000 "99"   1999.  3.000 "04"  "03:00"      "16:45:36.5"  12.00  4.000
  file/form=delim/delim="/,\,,-,:" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
-             DATA SET: ./bn_delimited_read_date_time.dat
+             DATA SET: ./data/bn_delimited_read_date_time.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2
@@ -37474,377 +37477,377 @@ cancel data/all
 columns/skip=1 bn_delimited_read_CO2.dat
 show data/full
      currently SET data sets:
-    1> ./bn_delimited_read_CO2.dat  (default)
+    1> ./data/bn_delimited_read_CO2.dat  (default)
  
  name     title                             I         J         K         L
- V1       V1                               1:20      ...       ...       ...
+ V1       V1                               1:19      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V2       V2                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V2       V2                               1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V3       V3                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V3       V3                               1:19      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V4       V4                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V4       V4                               1:19      ...       ...       ...
        (Julian days since 1-Jan-1900)
             Data type = NUMERIC
             Conversion /TYPE=DATE
              days on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V5       V5                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V5       V5                               1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V6       V6                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V6       V6                               1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V7       V7                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V7       V7                               1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V8       V8                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V8       V8                               1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V9       V9                               1:20      ...       ...       ...
+             X=0.5:19.5  
+ V9       V9                               1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V10      V10                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V10      V10                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V11      V11                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V11      V11                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V12      V12                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V12      V12                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V13      V13                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V13      V13                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V14      V14                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V14      V14                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V15      V15                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V15      V15                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V16      V16                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V16      V16                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V17      V17                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V17      V17                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V18      V18                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V18      V18                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V19      V19                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V19      V19                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V20      V20                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V20      V20                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V21      V21                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V21      V21                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V22      V22                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V22      V22                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V23      V23                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V23      V23                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V24      V24                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V24      V24                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V25      V25                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V25      V25                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V26      V26                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V26      V26                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V27      V27                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V27      V27                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V28      V28                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V28      V28                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V29      V29                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V29      V29                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V30      V30                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V30      V30                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V31      V31                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V31      V31                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V32      V32                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V32      V32                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V33      V33                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V33      V33                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V34      V34                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V34      V34                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V35      V35                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V35      V35                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V36      V36                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V36      V36                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V37      V37                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V37      V37                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V38      V38                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V38      V38                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V39      V39                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V39      V39                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V40      V40                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V40      V40                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V41      V41                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V41      V41                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V42      V42                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V42      V42                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V43      V43                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V43      V43                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V44      V44                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V44      V44                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V45      V45                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V45      V45                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V46      V46                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V46      V46                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V47      V47                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V47      V47                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V48      V48                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V48      V48                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V49      V49                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V49      V49                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V50      V50                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V50      V50                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V51      V51                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V51      V51                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V52      V52                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V52      V52                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V53      V53                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V53      V53                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V54      V54                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V54      V54                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V55      V55                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V55      V55                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V56      V56                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V56      V56                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V57      V57                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V57      V57                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V58      V58                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V58      V58                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V59      V59                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V59      V59                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V60      V60                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V60      V60                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V61      V61                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V61      V61                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V62      V62                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V62      V62                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V63      V63                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V63      V63                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V64      V64                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V64      V64                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V65      V65                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V65      V65                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V66      V66                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V66      V66                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V67      V67                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V67      V67                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V68      V68                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V68      V68                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V69      V69                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V69      V69                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V70      V70                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V70      V70                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V71      V71                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V71      V71                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
- V72      V72                              1:20      ...       ...       ...
+             X=0.5:19.5  
+ V72      V72                              1:19      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G###) with -1.E+34 for missing data
-             X=0.5:20.5  
+             X=0.5:19.5  
  
  /DELIMITERS="\t,\,"
  /FORMAT = DELIMITED
  /SKIP = 1
  /COLUMNS = 72
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
-             DATA SET: ./bn_delimited_read_CO2.dat
+             DATA SET: ./data/bn_delimited_read_CO2.dat
              X: 0.5 to 19.5
  Column  1: V1
  Column  2: V2
@@ -37893,7 +37896,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,
 18   / 18: "I8SI9S"  4.000 "B"  34671.  94.99 -30.30  1945.   999.   4.96  34.41  0.000  19.00  0.0000  1.000  1008.  186.9  0.0000  30.28  0.000  0.0000  0.000  36.39  0.000  2.153  0.000  0.429
 19   / 19: "I8SI9S"  4.000 "B"  34671.  94.99 -30.30  1945.  1098.   4.31  34.44  0.000  18.00  0.0000  1.000  1109.  171.8  0.0000  32.20  0.000  0.0000  0.000  50.45  0.000  2.297  0.000  0.198
 list/i=8:14 v11,v19,v21,v23,v25
-             DATA SET: ./bn_delimited_read_CO2.dat
+             DATA SET: ./data/bn_delimited_read_CO2.dat
              X: 7.5 to 14.5
  Column  1: V11
  Column  2: V19
@@ -37910,7 +37913,7 @@ list/i=8:14 v11,v19,v21,v23,v25
 14   / 14:  0.000  0.000  0.000  0.000  0.000
 (set variable/bad=9 v11; set variable/bad=9 v19;set variable/bad=9 v21;set variable/bad=9 v23;set variable/bad=9 v25)
 list/i=8:14 v11,v19,v21,v23,v25
-             DATA SET: ./bn_delimited_read_CO2.dat
+             DATA SET: ./data/bn_delimited_read_CO2.dat
              X: 7.5 to 14.5
  Column  1: V11
  Column  2: V19
@@ -40842,10 +40845,10 @@ set mode labels
 ! Modulo attribute can take numerical values to indicate
 ! the modulo length of axis (subspan modulo changes)
 ! This script tests various string values of the attribute
- 
+! *acm* list the axis names, otherwise get random TIME* axes defined right now
 use modulo_lon_time
  
-sh ax lon*
+sh ax lon_true, lon_moderr, lon_false, lon_mod_nounits, lon_usual
  name       axis              # pts   start                end
  LON_TRUE  LONGITUDE            5mr   1.875W(-1.875)       13.125E
    Axis span (to cell edges) = 18.75 (modulo length = 360)
@@ -40857,7 +40860,7 @@ sh ax lon*
    Axis span (to cell edges) = 18.75 (modulo length = axis span)
  LON_USUAL LONGITUDE            5mr   0E                   15E
    Axis span (to cell edges) = 18.75 (modulo length = 360)
-sh ax tim*
+sh ax time_true, time_moderr, time_false, time_mod_nounits, time_usual
  name       axis              # pts   start                end
  TIME_TRUE T (days)             4mi   30                   150
 T0 = %%
@@ -40874,7 +40877,6 @@ T0 = %%
  TIME_USUAL T (days)            4mr   120                  150
 T0 = %%
    Axis span (to cell edges) = 40 (modulo length = axis span)
- 
 *** Running ferret script: bn550_bug_fixes.jnl
 ! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
@@ -41116,7 +41118,7 @@ GO err550_nc_seconds.jnl
 use time_axis_seconds.nc
  
 sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
+sp ncdump data/time_axis_seconds.nc | grep origin >> all_ncdump.out
 list t[gt=height]    ! Seconds should be 36, 37, 38...
              VARIABLE : T
                         axis TIME
@@ -41332,7 +41334,7 @@ GO err551_invalid_calendar.jnl
 set data err_calendar.nc
 sh data
      currently SET data sets:
-    1> ./err_calendar.nc  (default)
+    1> ./data/err_calendar.nc  (default)
  name     title                             I         J         K         L
  TIME     observation time                 ...       ...       ...       1:12
        (invalid coordinate axis)
@@ -42040,7 +42042,6 @@ ppl list shakey
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
  
- 
 ! dataset with 4 dimensions; compute EOF at each vertical level.
  
 use gt4d011.cdf
@@ -42238,7 +42239,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
  4   / 4:  0.002
  5   / 5:  0.000
  
- 
+! The functions need updating for double precision Ferret
 exit/script
 *** Running ferret script: bn_abstract_axis_names.jnl
 ! bn_abstract_axis_names.jnl
@@ -42490,7 +42491,7 @@ USE levitus_climatology.cdf
  
 SHO DATA/XML
 <datasets>
-<dataset name="./levitus_climatology.cdf" default="true">
+<dataset name="./data/levitus_climatology.cdf" default="true">
 <title> </title>
 <var name="TEMP" />
 </dataset>
@@ -44143,7 +44144,7 @@ can mem/all
 can data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
- canceling dset ./gtsa056_2.cdf
+ canceling dset ./data/gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44172,7 +44173,7 @@ define grid/like=xytvar egrid
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
 canc data/all
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
  
 ! cache hit from full region cache -- bypass use of strides
@@ -44465,7 +44466,7 @@ canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  dealloc  dynamic grid (G###)          (AX###)   YAX1_30   ZAX1_20   TAX1_10
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
@@ -44498,7 +44499,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_10
  -DELETE BIGVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -44574,7 +44575,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   NORMAL    (AX###)
  -DELETE XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -44618,7 +44619,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   NORMAL
  -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
  
 cancel region; set region/l=1
@@ -44653,7 +44654,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -44687,7 +44688,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   TAX1_6
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
@@ -44719,7 +44720,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/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
@@ -44754,7 +44755,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 24 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
@@ -44786,7 +44787,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -44820,7 +44821,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
  dealloc  dynamic grid (G###)          (AX###)   (AX###)   (AX###)   ZAX1_7
  -DELETE MIDVAR   M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -45383,7 +45384,7 @@ can mode ignore
  
 use coads_climatology
 list/x=181/y=1/form=(f6.2, 3f10.4) sst, t[gt=sst], tboxlo[gt=sst], tboxhi[gt=sst]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              TIME: 01-JAN 00:45 to 01-APR 08:12
              LONGITUDE: 179W
              LATITUDE: 1N
@@ -45519,7 +45520,7 @@ can data/all
  
 use gappy_bounds.nc
 list/prec=7 a, t[gt=a], tboxlo[gt=a], tboxhi[gt=a]
-             DATA SET: ./gappy_bounds.nc
+             DATA SET: ./data/gappy_bounds.nc
              TIME: 01-JAN-1990 12:00 to 10-JAN-1990 12:00
  Column  1: A is SST[X=150:180 at AVE,Y=-10:0 at AVE]
  Column  2: T is T (axis TGAP)
@@ -46944,7 +46945,7 @@ GO err570_sh_dat_nan.jnl
 use nan_missing.nc
 show data/full
      currently SET data sets:
-    1> ./nan_missing.nc  (default)
+    1> ./data/nan_missing.nc  (default)
      NCEP Ocean Analysis
  name     title                             I         J         K         L
  TEMP     temperature                      1:1       1:1       1:19      1:1
@@ -47548,7 +47549,7 @@ list/x=180/y=0 sst
 use illeg_axname.nc
 sh data
      currently SET data sets:
-    1> ./illeg_axname.nc  (default)
+    1> ./data/illeg_axname.nc  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...
  NEW.LONGITUDES
@@ -47912,7 +47913,7 @@ GO err580_use_des.jnl
 use vary_scale.des
 sh data
      currently SET data sets:
-    1> ./vary_scale.des  (default)
+    1> ./data/vary_scale.des  (default)
  name     title                             I         J         K         L
  TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
@@ -47929,7 +47930,7 @@ GO err580_use_des.jnl
 use vary_scale.des
 sh data
      currently SET data sets:
-    1> ./vary_scale.des  (default)
+    1> ./data/vary_scale.des  (default)
  name     title                             I         J         K         L
  TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
@@ -48480,7 +48481,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.21"
+FERRET_VERSION = "7.3"
  
 ! history attribute
 let a = 12
@@ -48498,7 +48499,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.21:
+ Commands in Program FERRET  version7.3:
  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
@@ -48507,7 +48508,7 @@ sho command
  SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
  SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
-      /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+      /TYPE/SWAP/REGULART/DELIMITE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
  SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -48569,7 +48570,7 @@ sho command
        /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
        /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
        /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
-       /OUTTYPE/CURVILIN/LAYERZ
+       /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
  PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/ALONG/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE
        /VS/SYMBOL/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE
        /NOAXES/STEP/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG
@@ -48974,7 +48975,7 @@ let zh2 = boxhi[k=2:`n`:2]
  
 list  zl2,(zl2+zh2)/2,zh2
  WARNING: Listed variables have ambiguous coordinates on axes: Z
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  Column  1: ZL2[Z=0:3174] is BOXLO[K=1:26:2]
  Column  2: EX#2 is (ZL2+ZH2)/2
  Column  3: ZH2[Z=0:4149] is BOXHI[K=2:27:2]
@@ -48996,7 +48997,7 @@ def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
  
 ! original axis
 list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              DEPTH (m): 0 to 4149
  Column  1: ZBOXLO is ZBOXLO (axis PSZT)
  Column  2: Z is Z (axis PSZT)
@@ -49070,7 +49071,7 @@ can var/all
  
 use ocean_atlas_temp
 sho att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -49078,10 +49079,10 @@ sho att/all temp
  TEMP.units = Deg C 
  
 show attribute temp.units
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.units = Deg C 
 show attribute temp.missing_value
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  
 !  specifying data set
@@ -49090,7 +49091,7 @@ use gt4d011
 use levitus_climatology
  
 sh att/all temp[d=2]
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  TEMP.parent_grid = PS3DT2 
  TEMP.slab_min_index = 91, 35, 1, 0
  TEMP.slab_max_index = 108, 56, 10, 0
@@ -49100,17 +49101,17 @@ sh att/all temp[d=2]
  TEMP.history = From gt4d011 
  TEMP.units = deg. C 
 sh att temp.units[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.units = Deg C 
  
 !  global attributes
 use err491_attval
  
 show att ..remark
-     attributes for dataset: ./err491_attval.cdf
+     attributes for dataset: ./data/err491_attval.cdf
   .remark = Generated by oar3d                                                                                                                                               
 show att/all .
-     attributes for dataset: ./err491_attval.cdf
+     attributes for dataset: ./data/err491_attval.cdf
  ..simulation = K-Bay OAR3d model (200m) 
  ..start_date = 980105000000 
  ..history = a
@@ -49145,7 +49146,7 @@ show att/all .
  ..node_offset = 0
  
 sho att/all .[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  ..history = FERRET V4.90 (GUI) 04-Feb-98 
  
 !  Now SHOW DATA/ATT
@@ -49154,7 +49155,7 @@ can data/all
 use ocean_atlas_temp
 sho data/att
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
+    1> ./data/ocean_atlas_temp.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -49194,7 +49195,7 @@ use levitus_climatology
  
 sh data/att gt4d011
      currently SET data sets:
-    2> ./gt4d011.cdf
+    2> ./data/gt4d011.cdf
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -49443,7 +49444,7 @@ use gt4d011
 ! string length for string attributes
  
 show att/all temp
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  TEMP.parent_grid = PS3DT2 
  TEMP.slab_min_index = 91, 35, 1, 0
  TEMP.slab_max_index = 108, 56, 10, 0
@@ -49563,7 +49564,7 @@ let nv = ..nvars
 let nd = ..ndims
 let vnames = ..varnames
 list/d=1 nv, nd
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
@@ -49794,7 +49795,7 @@ can var/all
 use test0.nc
 sh data/att
      currently SET data sets:
-    1> ./test0.nc  (default)
+    1> ./data/test0.nc  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -49929,7 +49930,7 @@ list/d=2 ..nvars
  
 sh data
      currently SET data sets:
-    1> ./gt4d011.cdf
+    1> ./data/gt4d011.cdf
  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
@@ -49940,7 +49941,7 @@ sh data
  TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
  PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
-    2> ./coads_climatology.cdf  (default)
+    2> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -50049,7 +50050,7 @@ def att/type=float temp.floatval = 22
 def att temp.pp = {1.5, 1.9}
 def att temp.some_text = "some text about the TEMP variable"
 sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50066,7 +50067,7 @@ sh att/all temp
 def att temp.pp = {1.5, 1.9, 3.45, 7}
 def att temp.some_text = "some different text"
 sh att temp.pp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.pp = 1.5, 1.9, 3.45, 7
 let var = temp.some_text
 list/nohead var
@@ -50077,7 +50078,7 @@ list/nohead var
 use gt4d011
 def att/D=1 temp.morenew = 2
 sh att/all temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50098,7 +50099,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  
 use ocean_atlas_temp
 sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50131,7 +50132,7 @@ list (coadsx).modulo
              FILENAME : coads_climatology.cdf
         " "
 sho att/all (coadsx)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (COADSX).units = degrees_east 
  (COADSX).modulo =   
  (COADSX).point_spacing = even 
@@ -50173,7 +50174,7 @@ can data gt4d011
  
 set data coads_climatology
 sho att (coadsx).modulo
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (COADSX).modulo =   
 set att (coadsx).modulo=360
  
@@ -50265,7 +50266,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  
 use gt4d011
 sh att/all salt
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  SALT.parent_grid = PS3DT2 
  SALT.slab_min_index = 91, 35, 1, 0
  SALT.slab_max_index = 108, 55, 10, 0
@@ -50277,7 +50278,7 @@ sh att/all salt
  
 set att/like=temp salt
 sh att/all salt
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  SALT.missing_value = 0.01
  SALT._FillValue = 0.01
  SALT.parent_grid = PS3DT2 
@@ -50345,7 +50346,7 @@ def att/type=float temp.floatval = 22
 def att temp.pp = {1.5, 1.9}
 def att temp.some_text = "some text about the TEMP variable"
 sh att/all temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50361,7 +50362,7 @@ sh att/all temp
 set att temp.pp = {1.5, 1.9, 3.45, 7}
 set att temp.some_text = "some different text"
 sh att temp.pp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.pp = 1.5, 1.9, 3.45, 7
 let var = temp.some_text
 list/nohead var
@@ -50389,7 +50390,7 @@ list pq
 use gt4d011
 def att/d=1 temp.morenew = 33
 sho att/all temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50431,7 +50432,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
  
 use err491_attval.cdf
 sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
+sp ncdump -h data/err491_attval.cdf >> all_ncdump.out
 save/clobber/file=a.nc elev[i=3,j=2:4]
 sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
@@ -50502,7 +50503,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 use ocean_atlas_temp
 sh att/all  (`temp,return=xaxis`)
  !-> sh att/all  (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (XAX_LEV9421_380).units = degrees_east 
  (XAX_LEV9421_380).modulo =   
  (XAX_LEV9421_380).point_spacing = even 
@@ -50526,7 +50527,7 @@ sp ncdump -h a.nc >> all_ncdump.out
 set reg/x=300:360/y=30:45
 sh att/all  (`temp,return=xaxis`)
  !-> sh att/all  (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (XAX_LEV9421_380).units = degrees_east 
  (XAX_LEV9421_380).modulo =   
  (XAX_LEV9421_380).point_spacing = even 
@@ -50543,7 +50544,7 @@ sp ncdump -h a.nc >> all_ncdump.out
 ! cancel output of attributes of the variable itself
 can region
 sh att/all  temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -50568,13 +50569,13 @@ ooooooooooooooooooooooooooooooooooooooooooo
 file/var="a1,a2,a3" EZ.DAT
 def att a1.three={1,2,3}
 sh att/all a1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  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)
+    1> ./data/EZ.DAT  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -50602,7 +50603,7 @@ columns/delim=" " EZ.DAT
 def att/type=string v1.strval = 2
 set att/output v1.strval
 sh att/all v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = V1 
  V1.missing_value = -1.E+34
  V1.strval = 2 
@@ -50852,7 +50853,7 @@ DEFINE ATT/OUTPUT  (`t2,return=yaxis`).new_att = "somthing"
  
 SHOW ATT/ALL (`t2,return=yaxis`)
  !-> SHOW ATT/ALL (COADSY)
-     attributes for dataset: ./coads_vwnd.cdf
+     attributes for dataset: ./data/coads_vwnd.cdf
  (COADSY).units = degrees_north 
  (COADSY).point_spacing = uneven 
  (COADSY).orig_file_axname = COADSY 
@@ -50904,7 +50905,7 @@ set att (`t2,return=xaxis`).units = "degrees"
  !-> set att (PSXT).units = "degrees"
 sh att/all (`t2,return=xaxis`)
  !-> sh att/all (PSXT)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (PSXT).units = degrees 
  (PSXT).point_spacing = even 
  (PSXT).orig_file_axname = PSXT 
@@ -50928,7 +50929,7 @@ set att (`temp,return=yaxis`).units="meters"
  !-> set att (PSYT).units="meters"
 sho att/all (`temp,return=yaxis`)
  !-> sho att/all (PSYT)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (PSYT).units = meters 
  (PSYT).point_spacing = uneven 
  (PSYT).edges = PSYTedges 
@@ -50976,7 +50977,7 @@ define att/out (`temp,return=xaxis`).new_att = "something"
  !-> define att/out (XAXLEVITR1_160).new_att = "something"
 sh dat/att
      currently SET data sets:
-    1> ./levitus_climatology.cdf  (default)
+    1> ./data/levitus_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -51055,7 +51056,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
 use coads_climatology
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = hour since 0000-01-01 00:00:00 
  (TIME).time_origin = 1-JAN-0000 00:00:00 
  (TIME).modulo =   
@@ -51066,7 +51067,7 @@ set att (`sst,return=taxis`).units="days"
  !-> set att (TIME).units="days"
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = days since 1-JAN-0000 00:00:00 
  (TIME).time_origin = 1-JAN-0000 00:00:00 
  (TIME).modulo =   
@@ -51076,7 +51077,7 @@ define attribute (`sst,return=taxis`).units = "months"
  !-> define attribute (TIME).units = "months"
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = months since 1-JAN-0000 00:00:00 
  (TIME).time_origin = 1-JAN-0000 00:00:00 
  (TIME).modulo =   
@@ -51087,7 +51088,7 @@ set att (`sst,return=taxis`).time_origin = "1-mar-1955"
  !-> set att (TIME).time_origin = "1-mar-1955"
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = months since 1-mar-1955 
  (TIME).time_origin = 1-mar-1955 
  (TIME).modulo =   
@@ -51097,7 +51098,7 @@ define attribute (`sst,return=taxis`).time_origin = "15-jan-2002"
  !-> define attribute (TIME).time_origin = "15-jan-2002"
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = months since 15-jan-2002 
  (TIME).time_origin = 15-jan-2002 
  (TIME).modulo =   
@@ -51109,7 +51110,7 @@ show att/all (`sst,return=taxis`)
 use coads_climatology
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = months since 15-jan-2002 
  (TIME).time_origin = 15-jan-2002 
  (TIME).modulo =   
@@ -51117,7 +51118,7 @@ show att/all (`sst,return=taxis`)
 def axis/t=1:12:1/unit=months/t0="1-jan-0001" time
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = MONTHS since 1-JAN-0001 
  (TIME).time_origin = 1-JAN-0001 
  (TIME).orig_file_axname = TIME 
@@ -51125,7 +51126,7 @@ show att/all (`sst,return=taxis`)
 set axis/t0="15-jan-0000" time
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = MONTHS since 15-JAN-0000 
  (TIME).time_origin = 15-JAN-0000 
  (TIME).orig_file_axname = TIME 
@@ -51133,7 +51134,7 @@ show att/all (`sst,return=taxis`)
 set axis/units=days time
 show att/all (`sst,return=taxis`)
  !-> show att/all (TIME)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (TIME).units = days since 15-JAN-0000 
  (TIME).time_origin = 15-JAN-0000 
  (TIME).orig_file_axname = TIME 
@@ -51193,7 +51194,7 @@ sp ncdump -h a.nc  >> all_ncdump.out
 can data/all
 use ocean_atlas_temp
 sho att temp
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
@@ -51201,7 +51202,7 @@ sho att temp
  TEMP.units = Deg C 
 sho att ocean_atlas_temp
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
+    1> ./data/ocean_atlas_temp.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -51237,7 +51238,7 @@ sho att ocean_atlas_temp
   
 sho att (`temp,return=xaxis`)
  !-> sho att (XAX_LEV9421_380)
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (XAX_LEV9421_380).units = degrees_east 
  (XAX_LEV9421_380).modulo =   
  (XAX_LEV9421_380).point_spacing = even 
@@ -51246,7 +51247,7 @@ sho att (`temp,return=xaxis`)
 use levitus_climatology
 sho att 1
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf
+    1> ./data/ocean_atlas_temp.cdf
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -51282,7 +51283,7 @@ sho att 1
   
 sho att 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf  (default)
+    2> ./data/levitus_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -51312,14 +51313,14 @@ sho att 2
   
  
 sho att temp[d=1]
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.missing_value = -1.E+34
  TEMP._FillValue = -1.E+34
  TEMP.long_name = Temperature 
  TEMP.history = From ocean_atlas_monthly 
  TEMP.units = Deg C 
 sho att temp[d=2]
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  TEMP.missing_value = -1.E+10
  TEMP._FillValue = -1.E+10
  TEMP.long_name = TEMPERATURE 
@@ -51328,14 +51329,14 @@ sho att temp[d=2]
  
 sho att (`temp[d=1],return=taxis`[d=1])
  !-> sho att (TIME1[d=1])
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  (TIME1).units = hour since 0000-01-01 00:00:00 
  (TIME1).time_origin = 01-JAN-0000 00:00:00 
  (TIME1).modulo =   
  (TIME1).orig_file_axname = TIME 
  
 sho att .
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
  
 ! 1/17 *sh*
@@ -51370,7 +51371,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
           6.009285E+13
  
 list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 83W to 49W
              LATITUDE: 1S
              TIME: 16-JAN 06:00
@@ -51400,7 +51401,7 @@ list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
 49W   / 146:  27.38   0.00   0.00   0.00   0.00
  
 list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 10N to 33N
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
@@ -51423,7 +51424,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
 33N   / 62:   ....       ....       ....       ....
  
 list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 10N to 33N
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
@@ -51444,7 +51445,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
 33N   / 62:   ....  1.000
  
 list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 23N to 51N
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
@@ -51470,7 +51471,7 @@ list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
 51N   / 71:   ....   ....   ....   2.47
  
 list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 93W
              LATITUDE: 23N to 51N
              TIME: 16-JAN 06:00
@@ -51480,7 +51481,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
 I / *:     2.466  23.84
  
 list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 93W
              LATITUDE: 23N to 51N
              TIME: 16-JAN 06:00
@@ -51490,7 +51491,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
 I / *:     9.000  6.000
  
 list/L=1/y=1:11/x=93w sst, sst[y=@iin]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 1N to 11N
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
@@ -51505,7 +51506,7 @@ list/L=1/y=1:11/x=93w sst, sst[y=@iin]
 11N   / 51:  26.99  2.956E+07
  
 list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
  Column  1: SST[Y=23N:25N] is SEA SURFACE TEMPERATURE (Deg C)
@@ -51515,7 +51516,7 @@ list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
 25N   / 58:  23.11  23.47
  
 list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-1]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 11N to 23N
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
@@ -51534,7 +51535,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-
 23N   / 57:  23.84  181.6  23.69  23.63  23.95
  
 list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl], sst[y=@weq:26]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 11N to 23N
              LONGITUDE: 93W
              TIME: 16-JAN 06:00
@@ -52874,7 +52875,7 @@ stat rose[d=2]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 2576 (46*56*1*1*1*1)
  # flagged as bad  data: 0
@@ -52898,7 +52899,7 @@ stat rose[j=12,d=1]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 46 (46*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -52921,33 +52922,33 @@ GO err600_reset_redefine_axis.jnl
  
 use coads_climatology
 def sym timeax = `sst,return=taxis`
- !-> def sym timeax = TIME4
+ !-> def sym timeax = TIME5
  
 show att/all (($timeax))
- !-> show att/all (TIME4)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME4).units = hour since 0000-01-01 00:00:00 
- (TIME4).time_origin = 1-JAN-0000 00:00:00 
- (TIME4).modulo =   
- (TIME4).orig_file_axname = TIME 
+ !-> show att/all (TIME5)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME5).units = hour since 0000-01-01 00:00:00 
+ (TIME5).time_origin = 1-JAN-0000 00:00:00 
+ (TIME5).modulo =   
+ (TIME5).orig_file_axname = TIME 
 show axis ($timeax)
- !-> show axis TIME4
+ !-> show axis TIME5
  name       axis              # pts   start                end
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME5     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
 define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
- !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME4
+ !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME5
 show att/all (($timeax))
- !-> show att/all (TIME4)
-     attributes for dataset: ./coads_climatology.cdf
- (TIME4).units = MONTHS since 1-JAN-0001 
- (TIME4).time_origin = 1-JAN-0001 
- (TIME4).orig_file_axname = TIME 
+ !-> show att/all (TIME5)
+     attributes for dataset: ./data/coads_climatology.cdf
+ (TIME5).units = MONTHS since 1-JAN-0001 
+ (TIME5).time_origin = 1-JAN-0001 
+ (TIME5).orig_file_axname = TIME 
 show axis ($timeax)
- !-> show axis TIME4
+ !-> show axis TIME5
  name       axis              # pts   start                end
- TIME4     TIME                 3 r   31-JAN-0001 10:29    02-APR-0001 07:27
+ TIME5     TIME                 3 r   31-JAN-0001 10:29    02-APR-0001 07:27
 T0 = 1-JAN-0001
    Axis span (to cell edges) = 3
  
@@ -52959,7 +52960,7 @@ def sym timeax = `temp,return=taxis`
  !-> def sym timeax = TIME11
 show att/all (($timeax))
  !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (TIME11).units = hour since 1980-01-14 14:00:00 
  (TIME11).time_origin = 14-JAN-1980 14:00:00 
  (TIME11).orig_file_axname = TIME1 
@@ -52974,7 +52975,7 @@ set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
  !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
 show att/all (($timeax))
  !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (TIME11).units = days since 1-JAN-1900 
  (TIME11).time_origin = 1-JAN-1900 
  (TIME11).orig_file_axname = TIME1 
@@ -52999,7 +53000,7 @@ def sym zax = `temp,return=zaxis`
  !-> def sym zax = PSZT
 show att/all (($timeax))
  !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (TIME11).units = hour since 1980-01-14 14:00:00 
  (TIME11).time_origin = 14-JAN-1980 14:00:00 
  (TIME11).orig_file_axname = TIME1 
@@ -53013,7 +53014,7 @@ cancel axis/modulo ($timeax)
  !-> cancel axis/modulo TIME11
 show att/all (($timeax))
  !-> show att/all (TIME11)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (TIME11).units = hour since 1980-01-14 14:00:00 
  (TIME11).time_origin = 14-JAN-1980 14:00:00 
  (TIME11).orig_file_axname = TIME1 
@@ -53027,7 +53028,7 @@ cancel axis/depth ($zax)
  !-> cancel axis/depth PSZT
 show att/all (($zax))
  !-> show att/all (PSZT)
-     attributes for dataset: ./gt4d011.cdf
+     attributes for dataset: ./data/gt4d011.cdf
  (PSZT).units = METERS 
  (PSZT).positive = up 
  (PSZT).point_spacing = uneven 
@@ -53059,7 +53060,7 @@ use coads_climatology
 ! Note TIME1 with attribute orig_file_axname
 sh dat/att
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -53076,7 +53077,7 @@ sh dat/att
                                  orig_file_axname
                                                  CHAR        6    F       COADSY
   
-(TIME5)                DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
+(TIME6)                DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        19   T       1-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  orig_file_axname
@@ -53104,7 +53105,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53153,7 +53154,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53343,7 +53344,7 @@ stat rose[d=2]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 2576 (46*56*1*1*1*1)
  # flagged as bad  data: 0
@@ -53367,7 +53368,7 @@ stat rose[j=12,d=1]
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./ss_small.nc
+             DATA SET: ./data/ss_small.nc
  
  Total # of data points: 46 (46*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -53385,7 +53386,7 @@ stat rose[j=12,d=1]
 !            unrelated axes already defined, which get in the way of
 !            seeing the desired output.
  
-set mode ignore_error
+!set mode ignore_error
  
 !..............1. ignore STRIDE = 1
 use coads_climatology
@@ -53424,6 +53425,7 @@ show axis `sst,return=xaxis`
  (AX###)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 !can't stride it again
+set mode ignore_error
 set axis/stride=2/offset=1 `sst, return=xaxis`
  !-> set axis/stride=2/offset=1 (AX###)
 show axis `sst,return=xaxis`
@@ -53431,6 +53433,7 @@ show axis `sst,return=xaxis`
  name       axis              # pts   start                end
  (AX###)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
+set mode/last ignore
 cancel data/all
  
 !..............3. only set STRIDE
@@ -53510,15 +53513,20 @@ show axis `sst,return=xaxis`
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+set mode ignore
 cancel axis/stride `sst,return=xaxis`
  !-> cancel axis/stride COADSX
+set mode/last ignore
 cancel data/all
  
  
 !.............5. OFFSET .LE. STRIDE
 use coads_climatology
+set mode ignore
 set axis/stride=2/offset=4 `sst, return=xaxis`
  !-> set axis/stride=2/offset=4 COADSX
+set mode/last ignore
 cancel data/all
  
 !.............6. SHOW GRID/DYNAMIC
@@ -53534,8 +53542,11 @@ cancel data/all
  
 !.............7. cancel stride on a non-strided axis
 use coads_climatology
+set mode ignore
 cancel axis/stride `sst,return=xaxis`
  !-> cancel axis/stride COADSX
+set mode/last ignore
+ 
 cancel data/all
  
 !.............8. striding on a modulo axis
@@ -53661,7 +53672,7 @@ can data/all
 use/order=yzt coads_climatology
 show data/all
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3
  
@@ -53715,6 +53726,7 @@ list/x=180/l=5 sst[j=1:30]
  85S   /  3:   ....
  87S   /  2:   ....
  89S   /  1:   ....
+ 
 set axis/stride=5/offset=3 `sst,return=yaxis`
  !-> set axis/stride=5/offset=3 COADSY
 list/x=180/l=5  sst
@@ -53825,7 +53837,7 @@ let f_filtered = lsl_lowpass(my_temp, 40,10)
 ! List the output so its not just a graphical test;
 ! Compute based on the whole T region, but just list a portion.
 LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
-             DATA SET: ./gtsa056_2.cdf
+             DATA SET: ./data/gtsa056_2.cdf
              TIME: 10-FEB-1982 10:30 to 15-MAR-1982 21:30
              LONGITUDE: 179.5E
              LATITUDE: 0.2S
@@ -54216,7 +54228,7 @@ list nomiss[gt=month_reg at MODNGD]
  
 let var = if temp gt 29.5 then temp
 list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD]+var[gt=month_reg at MODNBD], nomiss[gt=month_reg at MODNGD]
-             DATA SET: ./gtsa056_2.cdf
+             DATA SET: ./data/gtsa056_2.cdf
              TIME: 01-JAN 00:45 to 31-DEC 06:34
              LONGITUDE: 139.5E
              LATITUDE: 0.8N
@@ -54425,7 +54437,7 @@ USE coads_climatology
 SET VAR/NAME=my_sst sst
 SHOW DATA
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -55396,7 +55408,7 @@ GO err61_new_attr_on_axis
 use ocean_atlas_temp
 sh dat
      currently SET data sets:
-    1> ./ocean_atlas_temp.cdf  (default)
+    1> ./data/ocean_atlas_temp.cdf  (default)
  name     title                             I         J         K         L
  TEMP     Temperature                      1:360     1:180     1:1       1:2
  
@@ -55437,7 +55449,7 @@ use gt4d011
 use levitus_climatology
  
 sh att temp[d=1].units
-     attributes for dataset: ./ocean_atlas_temp.cdf
+     attributes for dataset: ./data/ocean_atlas_temp.cdf
  TEMP.units = Deg C 
  
  
@@ -55892,15 +55904,7 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  0.000E+00  6.800E+00 0.120    0  SYSTEM  @ASLATITUDE : 9N
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 2  0.000E+00  6.600E+00 0.120    0  SYSTEM  @ASTIME : 16-JAN 06:00
- LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 3  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: coads_climatology
- 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 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 1 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  
 ! For plots with multi lines in one plot command, mark each if no data
@@ -55944,7 +55948,7 @@ use gtsa056_2.cdf
 let var = u[x=180,y=0,k=1,t=1-jan-1982:1-jan-1983]
 plot var, var[t=@med],  var[t=@med:3], var[t=@med:7]
 list/t=1-dec-1982:1-jan-1983 var, var[t=@med],  var[t=@med:3], var[t=@med:7]
-             DATA SET: ./gtsa056_2.cdf
+             DATA SET: ./data/gtsa056_2.cdf
              TIME: 29-NOV-1982 10:30 to 01-JAN-1983 21:30
              LONGITUDE: 180E
              LATITUDE: 0
@@ -55970,7 +55974,7 @@ use coads_climatology
 let var= sst[y=0,L=10]
 plot var,var[x=@med:3], var[x=@med:7]
 list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LONGITUDE: 80W to 50W
              LATITUDE: 1S
              TIME: 15-FEB-0002 04:07
@@ -55997,7 +56001,7 @@ list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
 let var= sst[x=180,L=10]
 plot var,var[y=@med:3], var[y=@med:7]
 list/y=-20:0 var,var[y=@med:3], var[y=@med:7]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 20S to 0
              LONGITUDE: 179E
              TIME: 15-FEB-0002 04:07
@@ -56374,11 +56378,11 @@ USE bug1421_b
  
 SHOW DATA
      currently SET data sets:
-    1> ./bug1421_a.nc
+    1> ./data/bug1421_a.nc
  name     title                             I         J         K         L
  A        zonal wind stress                1:1       1:1       ...       1:20
  
-    2> ./bug1421_b.nc  (default)
+    2> ./data/bug1421_b.nc  (default)
  name     title                             I         J         K         L
  B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12
  
@@ -56946,7 +56950,7 @@ set mode/last nodata_lab
 set data proleptic_gregorian.nc
 show data
      currently SET data sets:
-    1> ./proleptic_gregorian.nc  (default)
+    1> ./data/proleptic_gregorian.nc  (default)
  name     title                             I         J         K         L
  MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
  
@@ -57588,7 +57592,7 @@ set mode calendar
 ! test the automatically-defined symbol LAST_GO_FILE
  
 show sym last_go_file
-LAST_GO_FILE = "./bn_last_go_file.jnl"
+LAST_GO_FILE = "./v6jnls/bn_last_go_file.jnl"
  
 *** Running ferret script: bn_cancel_upcase_uservar.jnl
 ! bn_cancel_upcase_uservar.jnl
@@ -58135,7 +58139,7 @@ list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijklave
 set data/format=cdf test_fil0
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -58327,7 +58331,7 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
 set data/format=cdf test_fil
 show data/full
      currently SET data sets:
-    1> ./gtbc011.cdf
+    1> ./data/gtbc011.cdf
  
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
@@ -58410,7 +58414,7 @@ set data reverse_axes
  
 show data/var
      currently SET data sets:
-    1> ./reverse_axes.cdf  (default)
+    1> ./data/reverse_axes.cdf  (default)
  
  name     title                             I         J         K         L
  FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
@@ -58427,7 +58431,7 @@ show data/var
  
 list/x=180 fcn_norm,fcn_rev
  WARNING: Listed variables have ambiguous coordinates on axes: Y
-             DATA SET: ./reverse_axes.cdf
+             DATA SET: ./data/reverse_axes.cdf
              LONGITUDE: 180E
  Column  1: FCN_NORM is COS(X/10)*SIN(Y/2)
  Column  2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -58483,7 +58487,7 @@ sh command list
        /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
        /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
        /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
-       /OUTTYPE/CURVILIN/LAYERZ
+       /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
 define axis/x=1:100:1/units=deg x100
 define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
 let a = x[gx=x100] + t[gt=t31]
@@ -58910,7 +58914,7 @@ USE grads_bug_file.nc
 ! A4 has z axis with long name layer
 SHOW DATA
      currently SET data sets:
-    1> ./grads_bug_file.nc  (default)
+    1> ./data/grads_bug_file.nc  (default)
  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       ...
@@ -59220,7 +59224,7 @@ use lev_rev_up.nc
  
 use lev_rev_up.nc
 list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
-             DATA SET: ./lev_rev_up.nc
+             DATA SET: ./data/lev_rev_up.nc
              Z (METERS): -5000 to 0
  Column  1: Z is Z (axis ZAXLEVITR)
  Column  2: ZBOXLO is ZBOXLO (axis ZAXLEVITR)
@@ -60033,7 +60037,7 @@ DEFINE GRID/X=XEZ1/Y=EZ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 EZ.DAT
 SHOW DATA/FULL
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  
  name     title                             I         J         K         L
  X1       X1                               1:3       1:20480   ...       ...
@@ -60059,7 +60063,7 @@ LIST X1
  5   / 5:  0.4780  0.5150  0.4690
 SHOW DATA
      currently SET data sets:
-    1> ./EZ.DAT  (default)
+    1> ./data/EZ.DAT  (default)
  name     title                             I         J         K         L
  X1       X1                               1:3       1:5       ...       ...
  X2       X2                               1:3       1:5       ...       ...
@@ -60852,7 +60856,7 @@ GO err64_packed_data
 ! sp ncpdq fine_x_axis.nc err64_packed_data.nc
 use err64_packed_data.nc
 sh att/all sst
-     attributes for dataset: ./err64_packed_data.nc
+     attributes for dataset: ./data/err64_packed_data.nc
  SST.missing_value = 1.E+20
  SST._FillValue = 1.E+20
  SST.long_name = sea surface temperature [degc] 
@@ -61516,7 +61520,7 @@ stat temp[x=@ave,t=@ave]
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00 (XT ave)
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 198 (1*22*9*1*1*1)
  # flagged as bad  data: 0
@@ -61534,7 +61538,7 @@ stat temp[x=@ave,z=@ave]
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 550 (1*22*1*25*1*1)
  # flagged as bad  data: 0
@@ -61582,7 +61586,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00 (ZT ave)
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 234 (18*13*1*1*1*1)
  # flagged as bad  data: 0
@@ -61649,11 +61653,11 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
 Bytes: 197508
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125621
+Bytes: 125620
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 125235
+Bytes: 125234
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 119300
+Bytes: 119299
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -61670,9 +61674,9 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
 Bytes: 60548
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32889
+Bytes: 32888
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 33104
+Bytes: 33103
  
 cancel list/all
 set list/ncformat=classic
@@ -62328,7 +62332,7 @@ cancel grid mygrid
 use bn_set_axis_regular
 show data
      currently SET data sets:
-    1> ./bn_set_axis_regular.nc  (default)
+    1> ./data/bn_set_axis_regular.nc  (default)
  name     title                             I         J         K         L
  MYDATA   2 * X + Y                        1:10      1:10      ...       ...
  
@@ -62826,8 +62830,8 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7.21 (beta/debug)"                                               
- 3    /  3:" ! Linux 3.10.0-693.el7.x86_64 64-bit - MM-DD-YY"                           
+ 2    /  2:" ! FERRET v7.3 (beta/debug)"                                                
+ 3    /  3:" ! Linux 3.10.0-693.5.2.el7.x86_64 64-bit - MM-DD-YY"                       
  4    /  4:" ! DD-MON-YY HH:MM     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
@@ -62935,7 +62939,7 @@ plot/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
  
 ! Numeric results
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -62972,7 +62976,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
 10-JAN-1983 12 / 25:  32.59  32.81  32.81  32.59
  
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -63008,7 +63012,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
 04-JAN-1983 10 / 24:  32.81  32.81  32.94  32.59
 10-JAN-1983 12 / 25:  32.59  32.81  32.81  32.59
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -63044,7 +63048,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
 04-JAN-1983 10 / 24:  32.81  32.94  32.97  32.59
 10-JAN-1983 12 / 25:  32.59  32.81  32.94  32.59
 list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -63081,7 +63085,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
 10-JAN-1983 12 / 25:  32.59  32.81  32.97  32.59
  
 list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              LONGITUDE: 139.5W to 122.5W
              LATITUDE: 2.5N
              DEPTH (m): 5
@@ -63110,7 +63114,7 @@ list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn
 123.5W / 107:  27.15  27.15  27.17  27.13
 122.5W / 108:  27.17  27.17  27.17  27.15
 list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              LATITUDE: 3.7S to 3.7N
              LONGITUDE: 123.5W
              DEPTH (m): 5
@@ -63144,7 +63148,7 @@ list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at s
 3.5N  / 56:  28.06  28.06  28.06  27.70
  
 list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              DEPTH (m): 0 to 100
              LONGITUDE: 123.5W
              LATITUDE: 2.5N
@@ -63225,7 +63229,7 @@ STAT/L=1 huge
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -63245,7 +63249,7 @@ STAT/L=1 huge
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -63489,7 +63493,7 @@ GO err664_xml_one_point_axis
 USE a_cartesian_bug1179.nc
 SH DAT
      currently SET data sets:
-    1> ./a_cartesian_bug1179.nc  (default)
+    1> ./data/a_cartesian_bug1179.nc  (default)
  name     title                             I         J         K         L
  TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
@@ -63499,7 +63503,7 @@ 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]">
+<var name="A[D=./data/a_cartesian_bug1179.nc]">
 <attribute name="definition" type="char">
    <value><![CDATA[TEMP]]></value>
 </attribute>
@@ -63527,7 +63531,7 @@ 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]">
+<var name="TEMP_AVE_T[D=./data/a_cartesian_bug1179.nc]">
 <attribute name="definition" type="char">
    <value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
 </attribute>
@@ -63943,7 +63947,7 @@ GO err667_att_too_long
 use toolong.nc
 sh dat/att
      currently SET data sets:
-    1> ./toolong.nc  (default)
+    1> ./data/toolong.nc  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -64086,9 +64090,9 @@ GO err667_show_var_twice
  
 use coads_climatology
 sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
 sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
  
 !should return nothing
 sh var airt
@@ -64401,7 +64405,7 @@ GO err67_reverse_bounds
  
 use reverse_z_bnds.nc
 list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
-             DATA SET: ./reverse_z_bnds.nc
+             DATA SET: ./data/reverse_z_bnds.nc
              Z: 0 to 1
  Column  1: LEV_VAR is a variable on the depth axis (none)
  Column  2: ZBOXLO is ZBOXLO (axis LEV)
@@ -64900,11 +64904,11 @@ GO err672_axis_order
  
  
 use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
+sp cp data/err67_axis_order.nc err67_axis_order_copy.nc
 use err67_axis_order_copy.nc
 sh dat
      currently SET data sets:
-    1> ./err67_axis_order.nc
+    1> ./data/err67_axis_order.nc
  name     title                             I         J         K         L
  UCOV     UCOV                             1:6       1:9       1:3       1:1
  CONTROLE CONTROLE                         1:6       ...       ...       ...
@@ -65242,7 +65246,7 @@ STAT IF intvar THEN 1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 8780
@@ -65262,7 +65266,7 @@ STAT IFV intvar THEN 1
              TIME: 16-JAN 06:00
              E:  N/A
              F:  N/A
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
  
  Total # of data points: 16200 (180*90*1*1*1*1)
  # flagged as bad  data: 6694
@@ -65480,7 +65484,7 @@ sp ncdump -h a.nc >> all_ncdump.out
 use degrees
 sh att/all (`var,return=xaxis`)
  !-> sh att/all (XAXIS)
-     attributes for dataset: ./degrees.nc
+     attributes for dataset: ./data/degrees.nc
  (XAXIS).units = degrees_east 
  (XAXIS).point_spacing = even 
  (XAXIS).axis = X 
@@ -65499,7 +65503,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 use bn_strides
 sh att/all (TTIME)
-     attributes for dataset: ./bn_strides.cdf
+     attributes for dataset: ./data/bn_strides.cdf
  (TTIME).units = DAYS since 1901-01-15 00:00:00 
  (TTIME).time_origin = 15-JAN-1901 
  (TTIME).point_spacing = even 
@@ -65616,7 +65620,7 @@ sp cat xml_out.xml
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <data>
 <datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./data/coads_climatology.cdf" default="true">
 <title> </title>
 <var name="SST">
 <attribute name="units" type="char">
@@ -65806,7 +65810,7 @@ sp grep -A5 dimension xml_out_string.xml
 ! 7/2012
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
- 
+! 11/2017 - still try to test old eof functions, if they are re-implemented
  
 ! Define two locations.
 def axis /X=1:2:1 xaxis
@@ -65853,20 +65857,47 @@ list eofsvd_stat(spacetime)
  
 show func eofsvd_space
 EOFSVD_SPACE(A)
-    Return SVD EOF spacial fields from XYT field
+    Return SVD EOF spatial fields from XYT field
     A: Variable in x,y,t; may be fcn of z,e,f
 ! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
 ! but might be mixed by rotation.
 ! This is if the EOF functions are in units of the original data,
 ! thus the eigenvectors times the square-root of the eigenvalue.
 ! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
-             VARIABLE : EOFSVD_SPACE(SPACETIME)
-             SUBSET   : 2 by 2 points (X-T)
-             1       2     
-              1       2
- 1   / 1:  0.0000 -0.7071
- 2   / 2: -0.7071 -0.0000
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          0.5000
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+          0.0000
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+          0.0000
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          0.5000
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -65874,251 +65905,40 @@ EOFSVD_TFUNC(A)
     A: Variable in x,y,t; may be fcn of z,e,f
 ! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
 ! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
-             VARIABLE : EOFSVD_TFUNC(SPACETIME)
-             SUBSET   : 2 by 240 points (X-T)
-                 1      2    
-                 1      2
- 0     /   1: -0.000 -1.414
- 0.25  /   2: -0.185 -1.402
- 0.5   /   3: -0.366 -1.366
- 0.75  /   4: -0.541 -1.307
- 1     /   5: -0.707 -1.225
- 1.25  /   6: -0.861 -1.122
- 1.5   /   7: -1.000 -1.000
- 1.75  /   8: -1.122 -0.861
- 2     /   9: -1.225 -0.707
- 2.25  /  10: -1.307 -0.541
- 2.5   /  11: -1.366 -0.366
- 2.75  /  12: -1.402 -0.185
- 3     /  13: -1.414 -0.000
- 3.25  /  14: -1.402  0.185
- 3.5   /  15: -1.366  0.366
- 3.75  /  16: -1.307  0.541
- 4     /  17: -1.225  0.707
- 4.25  /  18: -1.122  0.861
- 4.5   /  19: -1.000  1.000
- 4.75  /  20: -0.861  1.122
- 5     /  21: -0.707  1.225
- 5.25  /  22: -0.541  1.307
- 5.5   /  23: -0.366  1.366
- 5.75  /  24: -0.185  1.402
- 6     /  25: -0.000  1.414
- 6.25  /  26:  0.185  1.402
- 6.5   /  27:  0.366  1.366
- 6.75  /  28:  0.541  1.307
- 7     /  29:  0.707  1.225
- 7.25  /  30:  0.861  1.122
- 7.5   /  31:  1.000  1.000
- 7.75  /  32:  1.122  0.861
- 8     /  33:  1.225  0.707
- 8.25  /  34:  1.307  0.541
- 8.5   /  35:  1.366  0.366
- 8.75  /  36:  1.402  0.185
- 9     /  37:  1.414  0.000
- 9.25  /  38:  1.402 -0.185
- 9.5   /  39:  1.366 -0.366
- 9.75  /  40:  1.307 -0.541
- 10    /  41:  1.225 -0.707
- 10.25 /  42:  1.122 -0.861
- 10.5  /  43:  1.000 -1.000
- 10.75 /  44:  0.861 -1.122
- 11    /  45:  0.707 -1.225
- 11.25 /  46:  0.541 -1.307
- 11.5  /  47:  0.366 -1.366
- 11.75 /  48:  0.185 -1.402
- 12    /  49:  0.000 -1.414
- 12.25 /  50: -0.185 -1.402
- 12.5  /  51: -0.366 -1.366
- 12.75 /  52: -0.541 -1.307
- 13    /  53: -0.707 -1.225
- 13.25 /  54: -0.861 -1.122
- 13.5  /  55: -1.000 -1.000
- 13.75 /  56: -1.122 -0.861
- 14    /  57: -1.225 -0.707
- 14.25 /  58: -1.307 -0.541
- 14.5  /  59: -1.366 -0.366
- 14.75 /  60: -1.402 -0.185
- 15    /  61: -1.414 -0.000
- 15.25 /  62: -1.402  0.185
- 15.5  /  63: -1.366  0.366
- 15.75 /  64: -1.307  0.541
- 16    /  65: -1.225  0.707
- 16.25 /  66: -1.122  0.861
- 16.5  /  67: -1.000  1.000
- 16.75 /  68: -0.861  1.122
- 17    /  69: -0.707  1.225
- 17.25 /  70: -0.541  1.307
- 17.5  /  71: -0.366  1.366
- 17.75 /  72: -0.185  1.402
- 18    /  73: -0.000  1.414
- 18.25 /  74:  0.185  1.402
- 18.5  /  75:  0.366  1.366
- 18.75 /  76:  0.541  1.307
- 19    /  77:  0.707  1.225
- 19.25 /  78:  0.861  1.122
- 19.5  /  79:  1.000  1.000
- 19.75 /  80:  1.122  0.861
- 20    /  81:  1.225  0.707
- 20.25 /  82:  1.307  0.541
- 20.5  /  83:  1.366  0.366
- 20.75 /  84:  1.402  0.185
- 21    /  85:  1.414  0.000
- 21.25 /  86:  1.402 -0.185
- 21.5  /  87:  1.366 -0.366
- 21.75 /  88:  1.307 -0.541
- 22    /  89:  1.225 -0.707
- 22.25 /  90:  1.122 -0.861
- 22.5  /  91:  1.000 -1.000
- 22.75 /  92:  0.861 -1.122
- 23    /  93:  0.707 -1.225
- 23.25 /  94:  0.541 -1.307
- 23.5  /  95:  0.366 -1.366
- 23.75 /  96:  0.185 -1.402
- 24    /  97:  0.000 -1.414
- 24.25 /  98: -0.185 -1.402
- 24.5  /  99: -0.366 -1.366
- 24.75 / 100: -0.541 -1.307
- 25    / 101: -0.707 -1.225
- 25.25 / 102: -0.861 -1.122
- 25.5  / 103: -1.000 -1.000
- 25.75 / 104: -1.122 -0.861
- 26    / 105: -1.225 -0.707
- 26.25 / 106: -1.307 -0.541
- 26.5  / 107: -1.366 -0.366
- 26.75 / 108: -1.402 -0.185
- 27    / 109: -1.414 -0.000
- 27.25 / 110: -1.402  0.185
- 27.5  / 111: -1.366  0.366
- 27.75 / 112: -1.307  0.541
- 28    / 113: -1.225  0.707
- 28.25 / 114: -1.122  0.861
- 28.5  / 115: -1.000  1.000
- 28.75 / 116: -0.861  1.122
- 29    / 117: -0.707  1.225
- 29.25 / 118: -0.541  1.307
- 29.5  / 119: -0.366  1.366
- 29.75 / 120: -0.185  1.402
- 30    / 121: -0.000  1.414
- 30.25 / 122:  0.185  1.402
- 30.5  / 123:  0.366  1.366
- 30.75 / 124:  0.541  1.307
- 31    / 125:  0.707  1.225
- 31.25 / 126:  0.861  1.122
- 31.5  / 127:  1.000  1.000
- 31.75 / 128:  1.122  0.861
- 32    / 129:  1.225  0.707
- 32.25 / 130:  1.307  0.541
- 32.5  / 131:  1.366  0.366
- 32.75 / 132:  1.402  0.185
- 33    / 133:  1.414 -0.000
- 33.25 / 134:  1.402 -0.185
- 33.5  / 135:  1.366 -0.366
- 33.75 / 136:  1.307 -0.541
- 34    / 137:  1.225 -0.707
- 34.25 / 138:  1.122 -0.861
- 34.5  / 139:  1.000 -1.000
- 34.75 / 140:  0.861 -1.122
- 35    / 141:  0.707 -1.225
- 35.25 / 142:  0.541 -1.307
- 35.5  / 143:  0.366 -1.366
- 35.75 / 144:  0.185 -1.402
- 36    / 145:  0.000 -1.414
- 36.25 / 146: -0.185 -1.402
- 36.5  / 147: -0.366 -1.366
- 36.75 / 148: -0.541 -1.307
- 37    / 149: -0.707 -1.225
- 37.25 / 150: -0.861 -1.122
- 37.5  / 151: -1.000 -1.000
- 37.75 / 152: -1.122 -0.861
- 38    / 153: -1.225 -0.707
- 38.25 / 154: -1.307 -0.541
- 38.5  / 155: -1.366 -0.366
- 38.75 / 156: -1.402 -0.185
- 39    / 157: -1.414 -0.000
- 39.25 / 158: -1.402  0.185
- 39.5  / 159: -1.366  0.366
- 39.75 / 160: -1.307  0.541
- 40    / 161: -1.225  0.707
- 40.25 / 162: -1.122  0.861
- 40.5  / 163: -1.000  1.000
- 40.75 / 164: -0.861  1.122
- 41    / 165: -0.707  1.225
- 41.25 / 166: -0.541  1.307
- 41.5  / 167: -0.366  1.366
- 41.75 / 168: -0.185  1.402
- 42    / 169: -0.000  1.414
- 42.25 / 170:  0.185  1.402
- 42.5  / 171:  0.366  1.366
- 42.75 / 172:  0.541  1.307
- 43    / 173:  0.707  1.225
- 43.25 / 174:  0.861  1.122
- 43.5  / 175:  1.000  1.000
- 43.75 / 176:  1.122  0.861
- 44    / 177:  1.225  0.707
- 44.25 / 178:  1.307  0.541
- 44.5  / 179:  1.366  0.366
- 44.75 / 180:  1.402  0.185
- 45    / 181:  1.414 -0.000
- 45.25 / 182:  1.402 -0.185
- 45.5  / 183:  1.366 -0.366
- 45.75 / 184:  1.307 -0.541
- 46    / 185:  1.225 -0.707
- 46.25 / 186:  1.122 -0.861
- 46.5  / 187:  1.000 -1.000
- 46.75 / 188:  0.861 -1.122
- 47    / 189:  0.707 -1.225
- 47.25 / 190:  0.541 -1.307
- 47.5  / 191:  0.366 -1.366
- 47.75 / 192:  0.185 -1.402
- 48    / 193:  0.000 -1.414
- 48.25 / 194: -0.185 -1.402
- 48.5  / 195: -0.366 -1.366
- 48.75 / 196: -0.541 -1.307
- 49    / 197: -0.707 -1.225
- 49.25 / 198: -0.861 -1.122
- 49.5  / 199: -1.000 -1.000
- 49.75 / 200: -1.122 -0.861
- 50    / 201: -1.225 -0.707
- 50.25 / 202: -1.307 -0.541
- 50.5  / 203: -1.366 -0.366
- 50.75 / 204: -1.402 -0.185
- 51    / 205: -1.414 -0.000
- 51.25 / 206: -1.402  0.185
- 51.5  / 207: -1.366  0.366
- 51.75 / 208: -1.307  0.541
- 52    / 209: -1.225  0.707
- 52.25 / 210: -1.122  0.861
- 52.5  / 211: -1.000  1.000
- 52.75 / 212: -0.861  1.122
- 53    / 213: -0.707  1.225
- 53.25 / 214: -0.541  1.307
- 53.5  / 215: -0.366  1.366
- 53.75 / 216: -0.185  1.402
- 54    / 217: -0.000  1.414
- 54.25 / 218:  0.185  1.402
- 54.5  / 219:  0.366  1.366
- 54.75 / 220:  0.541  1.307
- 55    / 221:  0.707  1.225
- 55.25 / 222:  0.861  1.122
- 55.5  / 223:  1.000  1.000
- 55.75 / 224:  1.122  0.861
- 56    / 225:  1.225  0.707
- 56.25 / 226:  1.307  0.541
- 56.5  / 227:  1.366  0.366
- 56.75 / 228:  1.402  0.185
- 57    / 229:  1.414  0.000
- 57.25 / 230:  1.402 -0.185
- 57.5  / 231:  1.366 -0.366
- 57.75 / 232:  1.307 -0.541
- 58    / 233:  1.225 -0.707
- 58.25 / 234:  1.122 -0.861
- 58.5  / 235:  1.000 -1.000
- 58.75 / 236:  0.861 -1.122
- 59    / 237:  0.707 -1.225
- 59.25 / 238:  0.541 -1.307
- 59.5  / 239:  0.366 -1.366
- 59.75 / 240:  0.185 -1.402
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          240.0
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+         -3.775E-15
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+         -3.775E-15
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          240.0
  
 ! The sum over all significant EOFs of the outer product of
 ! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -66144,281 +65964,186 @@ list eofsvd_stat(space12)
  1   / 1:   2.00   2.00   2.00
  2   / 2:  50.00  50.00   0.00
  3   / 3:   0.50   0.50   0.00
-list eofsvd_space(space12)
-             VARIABLE : EOFSVD_SPACE(SPACE12)
-             SUBSET   : 3 by 3 points (X-T)
-             1       2       3     
-              1       2       3
- 1   / 1:  0.0000 -0.7071    ....
- 2   / 2: -0.7071 -0.0000    ....
- 3   / 3:    ....    ....    ....
-list eofsvd_tfunc(space12)
-             VARIABLE : EOFSVD_TFUNC(SPACE12)
-             SUBSET   : 3 by 240 points (X-T)
-                 1      2      3    
-                 1      2      3
- 0     /   1: -0.000 -1.414   ....
- 0.25  /   2: -0.185 -1.402   ....
- 0.5   /   3: -0.366 -1.366   ....
- 0.75  /   4: -0.541 -1.307   ....
- 1     /   5: -0.707 -1.225   ....
- 1.25  /   6: -0.861 -1.122   ....
- 1.5   /   7: -1.000 -1.000   ....
- 1.75  /   8: -1.122 -0.861   ....
- 2     /   9: -1.225 -0.707   ....
- 2.25  /  10: -1.307 -0.541   ....
- 2.5   /  11: -1.366 -0.366   ....
- 2.75  /  12: -1.402 -0.185   ....
- 3     /  13: -1.414 -0.000   ....
- 3.25  /  14: -1.402  0.185   ....
- 3.5   /  15: -1.366  0.366   ....
- 3.75  /  16: -1.307  0.541   ....
- 4     /  17: -1.225  0.707   ....
- 4.25  /  18: -1.122  0.861   ....
- 4.5   /  19: -1.000  1.000   ....
- 4.75  /  20: -0.861  1.122   ....
- 5     /  21: -0.707  1.225   ....
- 5.25  /  22: -0.541  1.307   ....
- 5.5   /  23: -0.366  1.366   ....
- 5.75  /  24: -0.185  1.402   ....
- 6     /  25: -0.000  1.414   ....
- 6.25  /  26:  0.185  1.402   ....
- 6.5   /  27:  0.366  1.366   ....
- 6.75  /  28:  0.541  1.307   ....
- 7     /  29:  0.707  1.225   ....
- 7.25  /  30:  0.861  1.122   ....
- 7.5   /  31:  1.000  1.000   ....
- 7.75  /  32:  1.122  0.861   ....
- 8     /  33:  1.225  0.707   ....
- 8.25  /  34:  1.307  0.541   ....
- 8.5   /  35:  1.366  0.366   ....
- 8.75  /  36:  1.402  0.185   ....
- 9     /  37:  1.414  0.000   ....
- 9.25  /  38:  1.402 -0.185   ....
- 9.5   /  39:  1.366 -0.366   ....
- 9.75  /  40:  1.307 -0.541   ....
- 10    /  41:  1.225 -0.707   ....
- 10.25 /  42:  1.122 -0.861   ....
- 10.5  /  43:  1.000 -1.000   ....
- 10.75 /  44:  0.861 -1.122   ....
- 11    /  45:  0.707 -1.225   ....
- 11.25 /  46:  0.541 -1.307   ....
- 11.5  /  47:  0.366 -1.366   ....
- 11.75 /  48:  0.185 -1.402   ....
- 12    /  49:  0.000 -1.414   ....
- 12.25 /  50: -0.185 -1.402   ....
- 12.5  /  51: -0.366 -1.366   ....
- 12.75 /  52: -0.541 -1.307   ....
- 13    /  53: -0.707 -1.225   ....
- 13.25 /  54: -0.861 -1.122   ....
- 13.5  /  55: -1.000 -1.000   ....
- 13.75 /  56: -1.122 -0.861   ....
- 14    /  57: -1.225 -0.707   ....
- 14.25 /  58: -1.307 -0.541   ....
- 14.5  /  59: -1.366 -0.366   ....
- 14.75 /  60: -1.402 -0.185   ....
- 15    /  61: -1.414 -0.000   ....
- 15.25 /  62: -1.402  0.185   ....
- 15.5  /  63: -1.366  0.366   ....
- 15.75 /  64: -1.307  0.541   ....
- 16    /  65: -1.225  0.707   ....
- 16.25 /  66: -1.122  0.861   ....
- 16.5  /  67: -1.000  1.000   ....
- 16.75 /  68: -0.861  1.122   ....
- 17    /  69: -0.707  1.225   ....
- 17.25 /  70: -0.541  1.307   ....
- 17.5  /  71: -0.366  1.366   ....
- 17.75 /  72: -0.185  1.402   ....
- 18    /  73: -0.000  1.414   ....
- 18.25 /  74:  0.185  1.402   ....
- 18.5  /  75:  0.366  1.366   ....
- 18.75 /  76:  0.541  1.307   ....
- 19    /  77:  0.707  1.225   ....
- 19.25 /  78:  0.861  1.122   ....
- 19.5  /  79:  1.000  1.000   ....
- 19.75 /  80:  1.122  0.861   ....
- 20    /  81:  1.225  0.707   ....
- 20.25 /  82:  1.307  0.541   ....
- 20.5  /  83:  1.366  0.366   ....
- 20.75 /  84:  1.402  0.185   ....
- 21    /  85:  1.414  0.000   ....
- 21.25 /  86:  1.402 -0.185   ....
- 21.5  /  87:  1.366 -0.366   ....
- 21.75 /  88:  1.307 -0.541   ....
- 22    /  89:  1.225 -0.707   ....
- 22.25 /  90:  1.122 -0.861   ....
- 22.5  /  91:  1.000 -1.000   ....
- 22.75 /  92:  0.861 -1.122   ....
- 23    /  93:  0.707 -1.225   ....
- 23.25 /  94:  0.541 -1.307   ....
- 23.5  /  95:  0.366 -1.366   ....
- 23.75 /  96:  0.185 -1.402   ....
- 24    /  97:  0.000 -1.414   ....
- 24.25 /  98: -0.185 -1.402   ....
- 24.5  /  99: -0.366 -1.366   ....
- 24.75 / 100: -0.541 -1.307   ....
- 25    / 101: -0.707 -1.225   ....
- 25.25 / 102: -0.861 -1.122   ....
- 25.5  / 103: -1.000 -1.000   ....
- 25.75 / 104: -1.122 -0.861   ....
- 26    / 105: -1.225 -0.707   ....
- 26.25 / 106: -1.307 -0.541   ....
- 26.5  / 107: -1.366 -0.366   ....
- 26.75 / 108: -1.402 -0.185   ....
- 27    / 109: -1.414 -0.000   ....
- 27.25 / 110: -1.402  0.185   ....
- 27.5  / 111: -1.366  0.366   ....
- 27.75 / 112: -1.307  0.541   ....
- 28    / 113: -1.225  0.707   ....
- 28.25 / 114: -1.122  0.861   ....
- 28.5  / 115: -1.000  1.000   ....
- 28.75 / 116: -0.861  1.122   ....
- 29    / 117: -0.707  1.225   ....
- 29.25 / 118: -0.541  1.307   ....
- 29.5  / 119: -0.366  1.366   ....
- 29.75 / 120: -0.185  1.402   ....
- 30    / 121: -0.000  1.414   ....
- 30.25 / 122:  0.185  1.402   ....
- 30.5  / 123:  0.366  1.366   ....
- 30.75 / 124:  0.541  1.307   ....
- 31    / 125:  0.707  1.225   ....
- 31.25 / 126:  0.861  1.122   ....
- 31.5  / 127:  1.000  1.000   ....
- 31.75 / 128:  1.122  0.861   ....
- 32    / 129:  1.225  0.707   ....
- 32.25 / 130:  1.307  0.541   ....
- 32.5  / 131:  1.366  0.366   ....
- 32.75 / 132:  1.402  0.185   ....
- 33    / 133:  1.414 -0.000   ....
- 33.25 / 134:  1.402 -0.185   ....
- 33.5  / 135:  1.366 -0.366   ....
- 33.75 / 136:  1.307 -0.541   ....
- 34    / 137:  1.225 -0.707   ....
- 34.25 / 138:  1.122 -0.861   ....
- 34.5  / 139:  1.000 -1.000   ....
- 34.75 / 140:  0.861 -1.122   ....
- 35    / 141:  0.707 -1.225   ....
- 35.25 / 142:  0.541 -1.307   ....
- 35.5  / 143:  0.366 -1.366   ....
- 35.75 / 144:  0.185 -1.402   ....
- 36    / 145:  0.000 -1.414   ....
- 36.25 / 146: -0.185 -1.402   ....
- 36.5  / 147: -0.366 -1.366   ....
- 36.75 / 148: -0.541 -1.307   ....
- 37    / 149: -0.707 -1.225   ....
- 37.25 / 150: -0.861 -1.122   ....
- 37.5  / 151: -1.000 -1.000   ....
- 37.75 / 152: -1.122 -0.861   ....
- 38    / 153: -1.225 -0.707   ....
- 38.25 / 154: -1.307 -0.541   ....
- 38.5  / 155: -1.366 -0.366   ....
- 38.75 / 156: -1.402 -0.185   ....
- 39    / 157: -1.414 -0.000   ....
- 39.25 / 158: -1.402  0.185   ....
- 39.5  / 159: -1.366  0.366   ....
- 39.75 / 160: -1.307  0.541   ....
- 40    / 161: -1.225  0.707   ....
- 40.25 / 162: -1.122  0.861   ....
- 40.5  / 163: -1.000  1.000   ....
- 40.75 / 164: -0.861  1.122   ....
- 41    / 165: -0.707  1.225   ....
- 41.25 / 166: -0.541  1.307   ....
- 41.5  / 167: -0.366  1.366   ....
- 41.75 / 168: -0.185  1.402   ....
- 42    / 169: -0.000  1.414   ....
- 42.25 / 170:  0.185  1.402   ....
- 42.5  / 171:  0.366  1.366   ....
- 42.75 / 172:  0.541  1.307   ....
- 43    / 173:  0.707  1.225   ....
- 43.25 / 174:  0.861  1.122   ....
- 43.5  / 175:  1.000  1.000   ....
- 43.75 / 176:  1.122  0.861   ....
- 44    / 177:  1.225  0.707   ....
- 44.25 / 178:  1.307  0.541   ....
- 44.5  / 179:  1.366  0.366   ....
- 44.75 / 180:  1.402  0.185   ....
- 45    / 181:  1.414 -0.000   ....
- 45.25 / 182:  1.402 -0.185   ....
- 45.5  / 183:  1.366 -0.366   ....
- 45.75 / 184:  1.307 -0.541   ....
- 46    / 185:  1.225 -0.707   ....
- 46.25 / 186:  1.122 -0.861   ....
- 46.5  / 187:  1.000 -1.000   ....
- 46.75 / 188:  0.861 -1.122   ....
- 47    / 189:  0.707 -1.225   ....
- 47.25 / 190:  0.541 -1.307   ....
- 47.5  / 191:  0.366 -1.366   ....
- 47.75 / 192:  0.185 -1.402   ....
- 48    / 193:  0.000 -1.414   ....
- 48.25 / 194: -0.185 -1.402   ....
- 48.5  / 195: -0.366 -1.366   ....
- 48.75 / 196: -0.541 -1.307   ....
- 49    / 197: -0.707 -1.225   ....
- 49.25 / 198: -0.861 -1.122   ....
- 49.5  / 199: -1.000 -1.000   ....
- 49.75 / 200: -1.122 -0.861   ....
- 50    / 201: -1.225 -0.707   ....
- 50.25 / 202: -1.307 -0.541   ....
- 50.5  / 203: -1.366 -0.366   ....
- 50.75 / 204: -1.402 -0.185   ....
- 51    / 205: -1.414 -0.000   ....
- 51.25 / 206: -1.402  0.185   ....
- 51.5  / 207: -1.366  0.366   ....
- 51.75 / 208: -1.307  0.541   ....
- 52    / 209: -1.225  0.707   ....
- 52.25 / 210: -1.122  0.861   ....
- 52.5  / 211: -1.000  1.000   ....
- 52.75 / 212: -0.861  1.122   ....
- 53    / 213: -0.707  1.225   ....
- 53.25 / 214: -0.541  1.307   ....
- 53.5  / 215: -0.366  1.366   ....
- 53.75 / 216: -0.185  1.402   ....
- 54    / 217: -0.000  1.414   ....
- 54.25 / 218:  0.185  1.402   ....
- 54.5  / 219:  0.366  1.366   ....
- 54.75 / 220:  0.541  1.307   ....
- 55    / 221:  0.707  1.225   ....
- 55.25 / 222:  0.861  1.122   ....
- 55.5  / 223:  1.000  1.000   ....
- 55.75 / 224:  1.122  0.861   ....
- 56    / 225:  1.225  0.707   ....
- 56.25 / 226:  1.307  0.541   ....
- 56.5  / 227:  1.366  0.366   ....
- 56.75 / 228:  1.402  0.185   ....
- 57    / 229:  1.414  0.000   ....
- 57.25 / 230:  1.402 -0.185   ....
- 57.5  / 231:  1.366 -0.366   ....
- 57.75 / 232:  1.307 -0.541   ....
- 58    / 233:  1.225 -0.707   ....
- 58.25 / 234:  1.122 -0.861   ....
- 58.5  / 235:  1.000 -1.000   ....
- 58.75 / 236:  0.861 -1.122   ....
- 59    / 237:  0.707 -1.225   ....
- 59.25 / 238:  0.541 -1.307   ....
- 59.5  / 239:  0.366 -1.366   ....
- 59.75 / 240:  0.185 -1.402   ....
  
+let eofs = eofsvd_space(space12[I=1:3])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    3 r   1                    3                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    3 r   1                    3                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          0.5000
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+          0.0000
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+          0.0000
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          0.5000
+ 
+let tafs = eofsvd_tfunc(space12[I=1:3])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          240.0
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+         -3.775E-15
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+         -3.775E-15
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          240.0
  
 ! If there are no complete time series, the functions should bail with an error
  
 let spacegap = if L ne 2 then spacetime
  
 set mode ignore
+ 
 list eofsvd_stat(spacegap)
 list eofsvd_space(spacegap)
 list eofsvd_tfunc(spacegap)
  
-! clean-up
 set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
  
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
  
-exit/script
+set mode ignore
+ 
+def axis /X=1:2:1 xaxis
+let spacetime = if (i eq 1) then cosT else sinT + 1
+ 
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data.
+! Run each of the eof functions and show the results.
+! Both are equally significant.  Eigenvalues should be 0.5.
+! Other EOF descriptions do not divide the covariance
+! matrix by the number of time values, in which case the
+! the eigenvalues will be much larger, but still equal
+! to each other.
+list eof_stat(spacetime, 1.0)
+ 
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
+! but might be mixed by rotation.
+! This is if the EOF functions are in units of the original data,
+! thus the eigenvectors times the square-root of the eigenvalue.
+! EOF vectors are always orthogonal to each other.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    1 r   1                    1                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
+! TAF vectors are always orthogonal to each other.
+let tafs = eof_tfunc(spacetime[I=1:2], 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    59.75               full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+set mode/last ignore
+ 
+! The sum over all significant EOFs of the outer product of
+! EOF(i) and TAF(i) should return the zero-time-meaned data
+! (original data with the time-series mean subtracted to give
+! a zero mean for each time series).
+! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
+ 
+! clean-up
+set grid abstract
+can var /all
+can grid xytgrid
 *** Running ferret script: bn_eof_simple2.jnl
 ! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
@@ -66426,6 +66151,7 @@ exit/script
 ! 7/2012
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
+! 11/2017 - still try to test old eof functions, if they are re-implemented
  
 ! Define four locations.
 def axis /X=1:2:1 xaxis
@@ -66469,7 +66195,7 @@ list eofsvd_stat(spacetime)
  
 show func eofsvd_space
 EOFSVD_SPACE(A)
-    Return SVD EOF spacial fields from XYT field
+    Return SVD EOF spatial fields from XYT field
     A: Variable in x,y,t; may be fcn of z,e,f
 ! Ideally:
 ! +- [ 0.35355,  0.0,
@@ -66484,19 +66210,56 @@ EOFSVD_SPACE(A)
 ! The norm^2 of an EOF should be the eigenvalue.
 ! The two EOFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
-             VARIABLE : EOFSVD_SPACE(SPACETIME)
-             SUBSET   : 2 by 2 by 2 points (X-Y-T)
-             1       2     
-              1       2
- ---- L:1 T:   1
- 1   / 1:  0.0635 -0.3478
- 2   / 2: -0.3478 -0.0635
- ---- L:2 T:   2
- 1   / 1:  0.3478  0.0635
- 2   / 2:  0.0635 -0.3478
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             SUBSET   : 2 points (Y)
+             X        : 1
+             1     
+              1
+ 1   / 1:  0.1250
+ 2   / 2:  0.1250
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             SUBSET   : 2 points (Y)
+             X        : 1
+               1      
+               1
+ 1   / 1: -3.123E-17
+ 2   / 2:  2.082E-17
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             SUBSET   : 2 points (Y)
+             X        : 2
+               2      
+               2
+ 1   / 1: -3.123E-17
+ 2   / 2:  2.082E-17
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             SUBSET   : 2 points (Y)
+             X        : 2
+             2     
+              2
+ 1   / 1:  0.1250
+ 2   / 2:  0.1250
  
 show func eofsvd_tfunc
 EOFSVD_TFUNC(A)
@@ -66508,253 +66271,40 @@ EOFSVD_TFUNC(A)
 ! The norm^2 of a TAF should be the number of time values.
 ! The two TAFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
-             VARIABLE : EOFSVD_TFUNC(SPACETIME)
-             SUBSET   : 2 by 240 points (X-T)
-                 1      2    
-                 1      2
- 0     /   1:  0.254  1.391
- 0.1   /   2:  0.107  1.410
- 0.2   /   3: -0.041  1.414
- 0.3   /   4: -0.188  1.402
- 0.4   /   5: -0.334  1.374
- 0.5   /   6: -0.476  1.332
- 0.6   /   7: -0.612  1.275
- 0.7   /   8: -0.742  1.204
- 0.8   /   9: -0.864  1.120
- 0.9   /  10: -0.976  1.023
- 1     /  11: -1.078  0.916
- 1.1   /  12: -1.168  0.798
- 1.2   /  13: -1.245  0.672
- 1.3   /  14: -1.308  0.538
- 1.4   /  15: -1.357  0.398
- 1.5   /  16: -1.391  0.254
- 1.6   /  17: -1.410  0.107
- 1.7   /  18: -1.414 -0.041
- 1.8   /  19: -1.402 -0.188
- 1.9   /  20: -1.374 -0.334
- 2     /  21: -1.332 -0.476
- 2.1   /  22: -1.275 -0.612
- 2.2   /  23: -1.204 -0.742
- 2.3   /  24: -1.120 -0.864
- 2.4   /  25: -1.023 -0.976
- 2.5   /  26: -0.916 -1.078
- 2.6   /  27: -0.798 -1.168
- 2.7   /  28: -0.672 -1.245
- 2.8   /  29: -0.538 -1.308
- 2.9   /  30: -0.398 -1.357
- 3     /  31: -0.254 -1.391
- 3.1   /  32: -0.107 -1.410
- 3.2   /  33:  0.041 -1.414
- 3.3   /  34:  0.188 -1.402
- 3.4   /  35:  0.334 -1.374
- 3.5   /  36:  0.476 -1.332
- 3.6   /  37:  0.612 -1.275
- 3.7   /  38:  0.742 -1.204
- 3.8   /  39:  0.864 -1.120
- 3.9   /  40:  0.976 -1.023
- 4     /  41:  1.078 -0.916
- 4.1   /  42:  1.168 -0.798
- 4.2   /  43:  1.245 -0.672
- 4.3   /  44:  1.308 -0.538
- 4.4   /  45:  1.357 -0.398
- 4.5   /  46:  1.391 -0.254
- 4.6   /  47:  1.410 -0.107
- 4.7   /  48:  1.414  0.041
- 4.8   /  49:  1.402  0.188
- 4.9   /  50:  1.374  0.334
- 5     /  51:  1.332  0.476
- 5.1   /  52:  1.275  0.612
- 5.2   /  53:  1.204  0.742
- 5.3   /  54:  1.120  0.864
- 5.4   /  55:  1.023  0.976
- 5.5   /  56:  0.916  1.078
- 5.6   /  57:  0.798  1.168
- 5.7   /  58:  0.672  1.245
- 5.8   /  59:  0.538  1.308
- 5.9   /  60:  0.398  1.357
- 6     /  61:  0.254  1.391
- 6.1   /  62:  0.107  1.410
- 6.2   /  63: -0.041  1.414
- 6.3   /  64: -0.188  1.402
- 6.4   /  65: -0.334  1.374
- 6.5   /  66: -0.476  1.332
- 6.6   /  67: -0.612  1.275
- 6.7   /  68: -0.742  1.204
- 6.8   /  69: -0.864  1.120
- 6.9   /  70: -0.976  1.023
- 7     /  71: -1.078  0.916
- 7.1   /  72: -1.168  0.798
- 7.2   /  73: -1.245  0.672
- 7.3   /  74: -1.308  0.538
- 7.4   /  75: -1.357  0.398
- 7.5   /  76: -1.391  0.254
- 7.6   /  77: -1.410  0.107
- 7.7   /  78: -1.414 -0.041
- 7.8   /  79: -1.402 -0.188
- 7.9   /  80: -1.374 -0.334
- 8     /  81: -1.332 -0.476
- 8.1   /  82: -1.275 -0.612
- 8.2   /  83: -1.204 -0.742
- 8.3   /  84: -1.120 -0.864
- 8.4   /  85: -1.023 -0.976
- 8.5   /  86: -0.916 -1.078
- 8.6   /  87: -0.798 -1.168
- 8.7   /  88: -0.672 -1.245
- 8.8   /  89: -0.538 -1.308
- 8.9   /  90: -0.398 -1.357
- 9     /  91: -0.254 -1.391
- 9.1   /  92: -0.107 -1.410
- 9.2   /  93:  0.041 -1.414
- 9.3   /  94:  0.188 -1.402
- 9.4   /  95:  0.334 -1.374
- 9.5   /  96:  0.476 -1.332
- 9.6   /  97:  0.612 -1.275
- 9.7   /  98:  0.742 -1.204
- 9.8   /  99:  0.864 -1.120
- 9.9   / 100:  0.976 -1.023
- 10    / 101:  1.078 -0.916
- 10.1  / 102:  1.168 -0.798
- 10.2  / 103:  1.245 -0.672
- 10.3  / 104:  1.308 -0.538
- 10.4  / 105:  1.357 -0.398
- 10.5  / 106:  1.391 -0.254
- 10.6  / 107:  1.410 -0.107
- 10.7  / 108:  1.414  0.041
- 10.8  / 109:  1.402  0.188
- 10.9  / 110:  1.374  0.334
- 11    / 111:  1.332  0.476
- 11.1  / 112:  1.275  0.612
- 11.2  / 113:  1.204  0.742
- 11.3  / 114:  1.120  0.864
- 11.4  / 115:  1.023  0.976
- 11.5  / 116:  0.916  1.078
- 11.6  / 117:  0.798  1.168
- 11.7  / 118:  0.672  1.245
- 11.8  / 119:  0.538  1.308
- 11.9  / 120:  0.398  1.357
- 12    / 121:  0.254  1.391
- 12.1  / 122:  0.107  1.410
- 12.2  / 123: -0.041  1.414
- 12.3  / 124: -0.188  1.402
- 12.4  / 125: -0.334  1.374
- 12.5  / 126: -0.476  1.332
- 12.6  / 127: -0.612  1.275
- 12.7  / 128: -0.742  1.204
- 12.8  / 129: -0.864  1.120
- 12.9  / 130: -0.976  1.023
- 13    / 131: -1.078  0.916
- 13.1  / 132: -1.168  0.798
- 13.2  / 133: -1.245  0.672
- 13.3  / 134: -1.308  0.538
- 13.4  / 135: -1.357  0.398
- 13.5  / 136: -1.391  0.254
- 13.6  / 137: -1.410  0.107
- 13.7  / 138: -1.414 -0.041
- 13.8  / 139: -1.402 -0.188
- 13.9  / 140: -1.374 -0.334
- 14    / 141: -1.332 -0.476
- 14.1  / 142: -1.275 -0.612
- 14.2  / 143: -1.204 -0.742
- 14.3  / 144: -1.120 -0.864
- 14.4  / 145: -1.023 -0.976
- 14.5  / 146: -0.916 -1.078
- 14.6  / 147: -0.798 -1.168
- 14.7  / 148: -0.672 -1.245
- 14.8  / 149: -0.538 -1.308
- 14.9  / 150: -0.398 -1.357
- 15    / 151: -0.254 -1.391
- 15.1  / 152: -0.107 -1.410
- 15.2  / 153:  0.041 -1.414
- 15.3  / 154:  0.188 -1.402
- 15.4  / 155:  0.334 -1.374
- 15.5  / 156:  0.476 -1.332
- 15.6  / 157:  0.612 -1.275
- 15.7  / 158:  0.742 -1.204
- 15.8  / 159:  0.864 -1.120
- 15.9  / 160:  0.976 -1.023
- 16    / 161:  1.078 -0.916
- 16.1  / 162:  1.168 -0.798
- 16.2  / 163:  1.245 -0.672
- 16.3  / 164:  1.308 -0.538
- 16.4  / 165:  1.357 -0.398
- 16.5  / 166:  1.391 -0.254
- 16.6  / 167:  1.410 -0.107
- 16.7  / 168:  1.414  0.041
- 16.8  / 169:  1.402  0.188
- 16.9  / 170:  1.374  0.334
- 17    / 171:  1.332  0.476
- 17.1  / 172:  1.275  0.612
- 17.2  / 173:  1.204  0.742
- 17.3  / 174:  1.120  0.864
- 17.4  / 175:  1.023  0.976
- 17.5  / 176:  0.916  1.078
- 17.6  / 177:  0.798  1.168
- 17.7  / 178:  0.672  1.245
- 17.8  / 179:  0.538  1.308
- 17.9  / 180:  0.398  1.357
- 18    / 181:  0.254  1.391
- 18.1  / 182:  0.107  1.410
- 18.2  / 183: -0.041  1.414
- 18.3  / 184: -0.188  1.402
- 18.4  / 185: -0.334  1.374
- 18.5  / 186: -0.476  1.332
- 18.6  / 187: -0.612  1.275
- 18.7  / 188: -0.742  1.204
- 18.8  / 189: -0.864  1.120
- 18.9  / 190: -0.976  1.023
- 19    / 191: -1.078  0.916
- 19.1  / 192: -1.168  0.798
- 19.2  / 193: -1.245  0.672
- 19.3  / 194: -1.308  0.538
- 19.4  / 195: -1.357  0.398
- 19.5  / 196: -1.391  0.254
- 19.6  / 197: -1.410  0.107
- 19.7  / 198: -1.414 -0.041
- 19.8  / 199: -1.402 -0.188
- 19.9  / 200: -1.374 -0.334
- 20    / 201: -1.332 -0.476
- 20.1  / 202: -1.275 -0.612
- 20.2  / 203: -1.204 -0.742
- 20.3  / 204: -1.120 -0.864
- 20.4  / 205: -1.023 -0.976
- 20.5  / 206: -0.916 -1.078
- 20.6  / 207: -0.798 -1.168
- 20.7  / 208: -0.672 -1.245
- 20.8  / 209: -0.538 -1.308
- 20.9  / 210: -0.398 -1.357
- 21    / 211: -0.254 -1.391
- 21.1  / 212: -0.107 -1.410
- 21.2  / 213:  0.041 -1.414
- 21.3  / 214:  0.188 -1.402
- 21.4  / 215:  0.334 -1.374
- 21.5  / 216:  0.476 -1.332
- 21.6  / 217:  0.612 -1.275
- 21.7  / 218:  0.742 -1.204
- 21.8  / 219:  0.864 -1.120
- 21.9  / 220:  0.976 -1.023
- 22    / 221:  1.078 -0.916
- 22.1  / 222:  1.168 -0.798
- 22.2  / 223:  1.245 -0.672
- 22.3  / 224:  1.308 -0.538
- 22.4  / 225:  1.357 -0.398
- 22.5  / 226:  1.391 -0.254
- 22.6  / 227:  1.410 -0.107
- 22.7  / 228:  1.414  0.041
- 22.8  / 229:  1.402  0.188
- 22.9  / 230:  1.374  0.334
- 23    / 231:  1.332  0.476
- 23.1  / 232:  1.275  0.612
- 23.2  / 233:  1.204  0.742
- 23.3  / 234:  1.120  0.864
- 23.4  / 235:  1.023  0.976
- 23.5  / 236:  0.916  1.078
- 23.6  / 237:  0.798  1.168
- 23.7  / 238:  0.672  1.245
- 23.8  / 239:  0.538  1.308
- 23.9  / 240:  0.398  1.357
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+list dot_t(v1, v1)
+             VARIABLE : DOT_T(V1, V1)
+             X        : 1
+          240.0
+list dot_t(v1, v2)
+             VARIABLE : DOT_T(V1, V2)
+             X        : 1
+         -5.285E-14
+list dot_t(v2, v1)
+             VARIABLE : DOT_T(V2, V1)
+             X        : 2
+         -5.285E-14
+list dot_t(v2, v2)
+             VARIABLE : DOT_T(V2, V2)
+             X        : 2
+          240.0
  
 ! Explanation:
 ! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -66764,19 +66314,110 @@ list tafs[I=1:2]
 !             = (0.0, cosT * sinT, cosT * sinT, 0.0)
 ! Adding these three gives the original data
  
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
+ 
+set mode ignore
+ 
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data.
+! Two are of equal significance with eigenvalues of 0.25.
+! Two are negligable (eigenvalues of zero or close to it).
+list eof_stat(spacetime, 1.0)
+ 
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- [ 0.35355,  0.0,
+!      0.0,     -0.35355 ]  (norm^2 = 0.25)
+!      corresponding to 0.25 * sqrt(2.0) * (cosT^2 - sinT^2)
+!                     = 0.25 * sqrt(2.0) * cos2T
+! and
+! +- [ 0.0,      0.35355,
+!      0.35355,  0.0     ]  (norm^2 = 0.25)
+!      corresponding to 0.25 * sqrt(2.0) * 2 * cosT * sinT
+!                     = 0.25 * sqrt(2.0) * sin2T
+! The norm^2 of an EOF should be the eigenvalue.
+! The two EOFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   1 pt
+ YAXIS     Y                    2 r   1                    2                   full
+ normal    Z
+ ABSTRACT  T             99999999 r   1                    1.E+08              (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+    Function NOT AVAILABLE in this Ferret version
+    A: Variable in x,y,t; may be fcn of z,e,f
+    frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- sqrt(2.0) * cos2T  (norm^2 = 240)
+! +- sqrt(2.0) * sin2T  (norm^2 = 240)
+! The norm^2 of a TAF should be the number of time values.
+! The two TAFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let tafs = eof_tfunc(spacetime, 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+let v2 = tafs[I=2]
+show grid v2
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    Y
+ normal    Z
+ TAXIS     T                  240 r   0                    23.9                full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
+! Explanation:
+! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
+! EOF1 * TAF1 = (0.5 * cos2T,  0.0, 0.0, -0.5 * cos2T)
+!             = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
+	! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
+!             = (0.0, cosT * sinT, cosT * sinT, 0.0)
+! Adding these three gives the original data
+ 
+set mode/last ignore
+ 
 ! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
 set grid abstract
+can var /all
 can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
- 
-exit/script
 *** Running ferret script: bn_interpolate_6d.jnl
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
@@ -68637,7 +68278,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
              TIME: 15-MAR-1983 10:00
              E: 3
              F: 7
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -68654,7 +68295,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1,g=u]
              TIME: 15-MAR-1983 10:00
              E: 3
              F: 7
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
  
  Total # of data points: 1 (1*1*1*1*1*1)
  # flagged as bad  data: 0
@@ -69223,7 +68864,7 @@ use 6dfile
  
 list/i=1/j=15/k=1/l=1/n=1 temp, ereverse(temp)
  WARNING: Listed variables have ambiguous coordinates on axes: E
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
              LONGITUDE: 160.5W
              LATITUDE: 5.5S
              DEPTH (m): 5
@@ -69239,7 +68880,7 @@ M / 4:  33.75  31.75
 M / 5:  34.75  30.75
 list/i=1/j=15/k=1/l=1/m=1 temp, freverse(temp)
  WARNING: Listed variables have ambiguous coordinates on axes: F
-             DATA SET: ./6dfile.nc
+             DATA SET: ./data/6dfile.nc
              LONGITUDE: 160.5W
              LATITUDE: 5.5S
              DEPTH (m): 5
@@ -69413,7 +69054,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              TIME: 1982
              E: 1 to 2
              FORECAST: 1982 to 1982
-             DATA SET: ./gtsa056_1_ef.nc
+             DATA SET: ./data/gtsa056_1_ef.nc
  
  Total # of data points: 120 (5*6*1*1*2*2)
  # flagged as bad  data: 0
@@ -70224,17 +69865,17 @@ all data in memory:
  
 ! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
 cancel data/all
- canceling dset ./ens1.nc
- canceling dset ./ens2.nc
- canceling dset ./ens3.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens4.nc
 use coads_climatology
 use ens1, ens2, ens3, ens4
 define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
 ! confirm that it isn't COADS that got hidden
 show data
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -70243,14 +69884,14 @@ show data
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
 cancel data fourfiles
- canceling dset ./ens1.nc
- canceling dset ./ens3.nc
- canceling dset ./ens2.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens4.nc
  canceling dset fourfiles
 show data/brief/all/hidden
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  
 ! Create airt in the other datasets by LET/D definitions.
 use ens1, ens2, ens3, ens4
@@ -70330,10 +69971,10 @@ show data/files fourfiles_gap
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
           Member datasets:
-      7.1: ./ens1.nc
+      7.1: ./data/ens1.nc
       7.2: (dummy)
-      7.3: ./ens3.nc
-      7.4: ./ens4.nc
+      7.3: ./data/ens3.nc
+      7.4: ./data/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 (G###)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
@@ -70415,13 +70056,13 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
  
 show data
      currently SET data sets:
-    1> ./coads_uw.nc
+    1> ./data/coads_uw.nc
  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)
+    2> ./data/navy_uw.nc  (default)
  name     title                             I         J         K         L
  UIN      ZONAL WIND                       1:30      1:30      ...       1:30
  VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30
@@ -70462,14 +70103,14 @@ list/l=3/y=30/x=-59:-51 uwnd[d=1], uwnd[d=2], uwnd[d=3,e=1], uwnd[d=3,e=2], uwnd
 ! Use the other order. As long as we have a file variable, we're ok
 show data/brief    ! see what is *not* hidden
      currently SET data sets:
-    1> ./coads_uw.nc
-    2> ./navy_uw.nc
+    1> ./data/coads_uw.nc
+    2> ./data/navy_uw.nc
     3> windy  (default)  Ensemble aggregation
 cancel data 3
 show data/brief    ! see what is *not* hidden
      currently SET data sets:
-    1> ./coads_uw.nc
-    2> ./navy_uw.nc
+    1> ./data/coads_uw.nc
+    2> ./data/navy_uw.nc
  
 ! Define the ensemble dataset
 ensemble windy = 2,1
@@ -70559,32 +70200,32 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
 ! should just show the ensemble set.  Members are hidden.
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
     6> fourfiles  (default)  Ensemble aggregation
  
 ! If ask for a member set by name or number, do show it
 show data/brief 2
      currently SET data sets:
-    2> ./ens1.nc
+    2> ./data/ens1.nc
 show data/brief ens3
      currently SET data sets:
-    4> ./ens3.nc
+    4> ./data/ens3.nc
  
 ! should show all members plus ensemble
 show data/brief/hidden
      currently SET data sets:
-    1> ./coads_climatology.cdf
-    2> ./ens1.nc
-    3> ./ens2.nc
-    4> ./ens3.nc
-    5> ./ens4.nc
+    1> ./data/coads_climatology.cdf
+    2> ./data/ens1.nc
+    3> ./data/ens2.nc
+    4> ./data/ens3.nc
+    5> ./data/ens4.nc
     6> fourfiles  (default)  Ensemble aggregation
  
 ! Since the members were hidden, they get deleted with the aggregation
 cancel data fourfiles
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
 cancel data/all
  
 ! Cancel a member, then the ensemble gets canceled.
@@ -70594,16 +70235,16 @@ use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
-    4> ./ens3.nc
-    5> ./ens4.nc
+    1> ./data/coads_climatology.cdf
+    4> ./data/ens3.nc
+    5> ./data/ens4.nc
     6> my_ens  (default)  Ensemble aggregation
 cancel data  ens2
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
-    4> ./ens3.nc
-    5> ./ens4.nc
+    1> ./data/coads_climatology.cdf
+    4> ./data/ens3.nc
+    5> ./data/ens4.nc
  
 ! Cancel the ensemble, then hidden members get canceled too
  
@@ -70613,14 +70254,14 @@ ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
 ! members hidden, showing only ensemble.
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
     6> my_ens  (default)  Ensemble aggregation
 cancel data my_ens
  
 ! Cancel ensemble dataset: hidden members deleted
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -70630,28 +70271,28 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 ! Shows all the ensembles
 show data/brief/files
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
     6> fourfiles     Ensemble aggregation
           Member datasets:
-      6.1: ./ens1.nc
-      6.2: ./ens2.nc
-      6.3: ./ens3.nc
-      6.4: ./ens4.nc
+      6.1: ./data/ens1.nc
+      6.2: ./data/ens2.nc
+      6.3: ./data/ens3.nc
+      6.4: ./data/ens4.nc
     7> some     Ensemble aggregation
           Member datasets:
-      7.1: ./ens1.nc
-      7.2: ./ens2.nc
+      7.1: ./data/ens1.nc
+      7.2: ./data/ens2.nc
     8> more  (default)  Ensemble aggregation
           Member datasets:
-      8.1: ./ens2.nc
-      8.2: ./ens3.nc
-      8.3: ./ens4.nc
+      8.1: ./data/ens2.nc
+      8.2: ./data/ens3.nc
+      8.3: ./data/ens4.nc
  
 ! Cancel a member of all the ensembles.  All the ensembles get deleted.
 cancel data ens2
 show data/brief
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  
 *** Running ferret script: bn_6d_lab_mode.jnl
 ! bn_6d_lab_mode.jnl
@@ -70665,7 +70306,7 @@ use gt4d011
 set mode 6d_lab  ! this is the default setting
 show data
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -70679,7 +70320,7 @@ show data
 cancel mode 6d_lab
 show data
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -70722,7 +70363,7 @@ stat temp
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              E:  N/A
              F:  N/A
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 99000 (18*22*10*25*1*1)
  # flagged as bad  data: 0
@@ -70738,7 +70379,7 @@ stat temp
              LATITUDE: 3.7S to 3.7N
              DEPTH (m): 0 to 100
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
  
  Total # of data points: 99000 (18*22*10*25)
  # flagged as bad  data: 0
@@ -70835,7 +70476,7 @@ GO err681_dims_direction
 use dims_not_coord
 sh dat
      currently SET data sets:
-    1> ./dims_not_coord.nc  (default)
+    1> ./data/dims_not_coord.nc  (default)
  name     title                             I         J         K         L
  U        zonal current                    1:4       1:7       1:1       ...
  LON_C    uv longitude                     1:4       1:7       ...       ...
@@ -71017,7 +70658,7 @@ GO err682_axis_no_clue
 use xsz.nc
 sh dat
      currently SET data sets:
-    1> ./xsz.nc  (default)
+    1> ./data/xsz.nc  (default)
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:5       1:7       1:3       ...
  
@@ -71180,7 +70821,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71238,7 +70879,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71286,7 +70927,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71334,7 +70975,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71374,7 +71015,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71415,7 +71056,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71485,7 +71126,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71538,7 +71179,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71602,7 +71243,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71646,7 +71287,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71690,7 +71331,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71734,7 +71375,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71775,7 +71416,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71965,7 +71606,7 @@ ppl ribbon/over
 use coads_clim_4digit.des
 sh dat
      currently SET data sets:
-    1> ./coads_clim_4digit.des  (default)
+    1> ./data/coads_clim_4digit.des  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6
  
@@ -72006,7 +71647,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -72047,7 +71688,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -72098,7 +71739,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -72146,7 +71787,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72172,7 +71813,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72198,7 +71839,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72474,7 +72115,7 @@ GO err684_delimited_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
+sp cat data/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
@@ -72483,7 +72124,7 @@ sp cat delim_prec.dat
 ! 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
+             DATA SET: ./data/delim_prec.dat
              X: 0.5 to 4.5
  Column  1: V1
  Column  2: V2 is V2 (degrees_east)(Longitude)
@@ -72499,7 +72140,7 @@ list/i=1:5/prec=10 v1,v2,v3,v4
 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
+             DATA SET: ./data/delim_prec.dat
              X: 0.5 to 4.5
  Column  1: DAY is day
  Column  2: LON is lon (degrees_east)(Longitude)
@@ -72638,7 +72279,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72667,7 +72308,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72718,7 +72359,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72812,7 +72453,7 @@ GO err684_FillValue_xml
 use fill_value_int.nc
 sh dat/var/xml
 <datasets>
-<dataset name="./fill_value_int.nc" default="true">
+<dataset name="./data/fill_value_int.nc" default="true">
 <title>INT variable with _FillValue -2147483647</title>
 <var name="A_dd">
 <attribute name="units" type="char">
@@ -73164,7 +72805,7 @@ define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
 use dsg.nc
 sh dat
      currently SET data sets:
-    1> ./dsg.nc  (default)
+    1> ./data/dsg.nc  (default)
  name     title                             I         J         K         L
  ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
  PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
@@ -73177,7 +72818,7 @@ sh dat
  SAL      sal                              1:34      ...       ...       ...
  
 sh att profile
-     attributes for dataset: ./dsg.nc
+     attributes for dataset: ./data/dsg.nc
  profile.missing_value = -1.E+34
  profile._FillValue = -1.E+34
  profile.long_name = profile ID: Cruise and Station 
@@ -73209,7 +72850,7 @@ 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)
+    2> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
  name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
@@ -73221,7 +72862,7 @@ sh dat 2
  PCO2     PCO2                             1:373     ...       ...       ...
  
 sh att (profile)
-     attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+     attributes for dataset: ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
  (profile)._FillValue = -1.E+34
  (profile).actual_range = 70, 90
  (profile).cf_role = profile_id 
@@ -73295,7 +72936,7 @@ variables:
 
 // global attributes:
 		:history = "WKD MON DD HH:MM:SS YYYY: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7.21  DD-MON-YY" ;
+			"FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.4" ;
 }
@@ -73326,7 +72967,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73357,7 +72998,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73371,7 +73012,7 @@ data:
 use gappy_bounds.nc
 sh dat
      currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
+    1> ./data/gappy_bounds.nc  (default)
  name     title                             I         J         K         L
  A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6
  
@@ -73379,7 +73020,7 @@ sh dat
 ! See the bounds attribute on the t axis
 sh dat/att
      currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
+    1> ./data/gappy_bounds.nc  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -73420,7 +73061,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73448,7 +73089,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73464,7 +73105,7 @@ variables:
  
 use write_int_att.nc
 sh att mhchla
-     attributes for dataset: ./write_int_att.nc
+     attributes for dataset: ./data/write_int_att.nc
  MHCHLA.missing_value = -9999999
  MHCHLA._FillValue = -9999999
  MHCHLA.actual_range = 0.00049, 91.76669
@@ -74887,7 +74528,7 @@ GO err685_lowercaseAxis
 use lowercaseTime.nc
 sh dat
      currently SET data sets:
-    1> ./lowercaseTime.nc  (default)
+    1> ./data/lowercaseTime.nc  (default)
  name     title                             I         J         K         L
  AA                                        ...       ...       ...       1:15
  BB                                        ...       ...       ...       1:8
@@ -74962,16 +74603,16 @@ GO err685_use_no_extension
 !  but .des was not being tried.
  
 ! The directory contains files with all three extensions
-sp ls duplicate.*
-duplicate.cdf
-duplicate.des
-duplicate.nc
+sp ls data/duplicate.*
+data/duplicate.cdf
+data/duplicate.des
+data/duplicate.nc
  
 ! The one that's used is .nc
 use duplicate
 sh dat
      currently SET data sets:
-    1> ./duplicate.nc  (default)
+    1> ./data/duplicate.nc  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3
  
@@ -75155,7 +74796,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75178,7 +74819,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75397,7 +75038,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75427,7 +75068,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75448,7 +75089,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75469,7 +75110,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75491,7 +75132,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75537,14 +75178,14 @@ GO err686_redef_ascii_att
  
 columns/delim=" " EZ.DAT
 sh att v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = V1 
  V1.missing_value = -1.E+34
  
 ! A new attribuge causes no problems
 define att/output v1.comment = "First var from EZ.DAT"
 sh att v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = V1 
  V1.missing_value = -1.E+34
  V1.comment = First var from EZ.DAT 
@@ -75559,7 +75200,7 @@ define att/output v1.units="km"
 define att/output v1.units="meters"
  
 sh att v1
-     attributes for dataset: ./EZ.DAT
+     attributes for dataset: ./data/EZ.DAT
  V1.long_name = vee one 
  V1.missing_value = -1.E+34
  V1.comment = First var from EZ.DAT 
@@ -75618,7 +75259,7 @@ set var/name=b a
 set var/name=temp salt
 show dat
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -75633,7 +75274,7 @@ show dat
 set var/name=salinity salt
 show dat
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -75653,7 +75294,7 @@ set var/name=psi myvar
 set var/name=diff myvar
 show dat
      currently SET data sets:
-    1> ./gt4d011.cdf  (default)
+    1> ./data/gt4d011.cdf  (default)
  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
@@ -75679,7 +75320,7 @@ SET MODE/LAST ignore
 use badbounds.nc
 show data
      currently SET data sets:
-    1> ./badbounds.nc  (default)
+    1> ./data/badbounds.nc  (default)
  name     title                             I         J         K         L
  MONTH_IRREG_BNDS
                                            1:2       ...       ...       1:12
@@ -75723,8 +75364,8 @@ LIST/nohead/norow $1[t=-5:9@$2]	! neg/pos t endpoints
  !-> LIST/nohead/norow tvar[t=-5:9 at ave]
    2.000
  
-! Exit_GO             
-! Exit_GO        
+! Exit_GO                    
+! Exit_GO               
  
 ! Inside a REPEAT
 define symbol ok = 0
@@ -75740,7 +75381,7 @@ repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
 ! short script for bn_enter_exit_GO
  
 plot/i=1:15/color=red/thick i
-! Exit_GO             
+! Exit_GO                    
  !-> def sym ok = 2
 !-> REPEAT: L=3
  !-> if 2 then go bn_shortgo
@@ -75749,7 +75390,7 @@ plot/i=1:15/color=red/thick i
 ! short script for bn_enter_exit_GO
  
 plot/i=1:15/color=red/thick i
-! Exit_GO             
+! Exit_GO                    
  !-> def sym ok = 3
  
 cancel redirect
@@ -75904,7 +75545,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75921,7 +75562,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75938,7 +75579,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76247,7 +75888,7 @@ set mode ignore
 ! caused Ferret to mis-read the time axis
 use badbounds_even.nc
 list var, tbox[gt=var]
-             DATA SET: ./badbounds_even.nc
+             DATA SET: ./data/badbounds_even.nc
              TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
  Column  1: VAR is T (My Variable)
  Column  2: TBOX is TBOX (axis TAX_BB_PTSPAC)
@@ -76264,7 +75905,7 @@ list var, tbox[gt=var]
 ! caused Ferret to mis-read the time axis
 use badbounds_non_enclose
 list var, tbox[gt=var]
-             DATA SET: ./badbounds_non_enclose.nc
+             DATA SET: ./data/badbounds_non_enclose.nc
              TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
  Column  1: VAR is T (My Variable)
  Column  2: TBOX is TBOX (axis TAX_BB_EVEN_NOENC)
@@ -76280,7 +75921,7 @@ list var, tbox[gt=var]
 ! spaced, no point-spacing attribute.
 use badbounds_uneven
 list var, tbox[gt=var]
-             DATA SET: ./badbounds_uneven.nc
+             DATA SET: ./data/badbounds_uneven.nc
              TIME: 02-JAN-2000 12:00 to 02-FEB-2000 12:00
  Column  1: VAR is T (My Variable)
  Column  2: TBOX is TBOX (axis TAX_BB_IRR)
@@ -76390,7 +76031,7 @@ use maize_1.nc, maize_2.nc, maize_3.nc
  
 ! Note the _FillValue,  flag
 sho att maize_yield
-     attributes for dataset: ./maize_3.nc
+     attributes for dataset: ./data/maize_3.nc
  MAIZE_YIELD._FillValue = 9.96921E+36
  MAIZE_YIELD.long_name =  Maize harvest 
  MAIZE_YIELD.units = kgC.m-2.yr-1 
@@ -76586,7 +76227,7 @@ let/d=`sst,r=dsetnum` a = 1
  !-> DEFINE VARIABLE/d=1 a = 1
 sh dat
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -77118,7 +76759,7 @@ set mode/last ignore
 ! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
  
 sp rm test_save_dsg.nc
-sp cp test_save_dsg_in.nc test_save_dsg.nc
+sp cp data/test_save_dsg_in.nc test_save_dsg.nc
  
 use test_save_dsg.nc
  
@@ -77179,7 +76820,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.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 }
  
 set mode/last upcase
@@ -77190,7 +76831,7 @@ set mode/last upcase
  
 cancel mode upcase
  
-sp cp global.nc  global_copy.nc
+sp cp data/global.nc  global_copy.nc
 use global_copy.nc
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
@@ -77198,7 +76839,7 @@ define attribute/output lon360.ioos_category = "Location"
 define attribute/output lon360.standard_name = "Longitude"
 define attribute/output lon360.history = "added to test_save_dsg.nc"
 save/quiet/append/file=global_copy.nc lon360
-sp ncdump -h global.nc
+sp ncdump -h data/global.nc
 netcdf global {
 dimensions:
 	trajectory = 1 ;
@@ -77272,7 +76913,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7.21  DD-MON-YY" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.3  DD-MON-YY" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77286,7 +76927,7 @@ variables:
 ! 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
+sp ncgen -o anew_global.nc data/anew_global.cdl
 use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
@@ -77299,7 +76940,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7.21  DD-MON-YY 
+ FERRET V7.3  DD-MON-YY 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -77312,7 +76953,7 @@ set mode/last upcase
 ! 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
+sp cp data/conventions_history_in.nc conventions_history.nc
 use conventions_history
 !
 !  The existing global attributes
@@ -77329,7 +76970,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.21  DD-MON-YY 
+ ..history = The history of the fileFERRET V7.3  DD-MON-YY 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running ferret script: bn_center_key_labels.jnl
 ! bn_center_key_labels
@@ -77561,7 +77202,7 @@ sp cat a.txt
  MYVAR = SST*2
  TWO = 2
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -77575,7 +77216,7 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
 ---------------- Just show data, two show data/clobber commands in a row
 sp cat a.txt
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -77601,7 +77242,7 @@ SAY ---------------- Just dataset 1
 ---------------- Just dataset 1
 sp cat a.txt
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -77612,12 +77253,12 @@ SAY ---------------- appending datset 2 by name
 ---------------- appending datset 2 by name
 sp cat a.txt
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  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)
+    2> ./data/levitus_climatology.cdf  (default)
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
@@ -79487,7 +79128,7 @@ def grid/x=x4ax/t=t12 txgrid
  FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               1:4       ...       ...       1:12
  
@@ -79517,7 +79158,7 @@ def grid/x=x4ax/t=t12 txgrid
 FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               1:4       ...       ...       1:12
  
@@ -79549,7 +79190,7 @@ def grid/x=x4ax/f=f12 fxgrid
  FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
  TM       Tm                               1:4       ...       ...       ...       ...       1:12
  
@@ -79582,7 +79223,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               ...       1:2       1:4       1:6
  
@@ -79634,7 +79275,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L
  TM       Tm                               ...       1:2       1:4       1:6
  
@@ -79686,7 +79327,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
  TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
@@ -79736,7 +79377,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
 FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
-    1> ./fxdata.dat  (default)
+    1> ./data/fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
  TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
@@ -79821,7 +79462,7 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
 use twodtime.nc
 sh dat
      currently SET data sets:
-    1> ./twodtime.nc  (default)
+    1> ./data/twodtime.nc  (default)
  name     title                             I         J         K         L         M         N
  TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
  
@@ -79849,12 +79490,12 @@ SET MODE/LAST upcase_output
 use twodtime.nc
 sh dat
      currently SET data sets:
-    1> ./twodtime.nc  (default)
+    1> ./data/twodtime.nc  (default)
  name     title                             I         J         K         L         M         N
  TIME     GRIB forecast or observation ti  ...       ...       ...       1:8       ...       1:3
  
 sh att time
-     attributes for dataset: ./twodtime.nc
+     attributes for dataset: ./data/twodtime.nc
  time.units = calendar Month since 2014-11-01T00:00:00Z 
  time.long_name = GRIB forecast or observation time 
  time.calendar = proleptic_gregorian 
@@ -80055,41 +79696,41 @@ list a
  2   / 2:""foobar""
  
 ! ======
-list    {SPAWN:"ls weird_name1.cdf","foobar"}
-             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+list    {SPAWN:"ls data/weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
-let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
+let a = {SPAWN:"ls data/weird_name1.cdf","foobar"}
 list a
-             VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+             VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
  
-list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
-             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list    {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
-let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
+let a = {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
 list a
-             VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
  
-list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
-             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list    {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+             VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
-let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
+let a = {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
 list a
-             VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+             VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
              SUBSET   : 2 points (X)
- 1   / 1:"weird_name1.cdf"
- 2   / 2:"foobar"         
+ 1   / 1:"data/weird_name1.cdf"
+ 2   / 2:"foobar"              
  
 ! ======
 ! in repl_exprns:
@@ -80275,33 +79916,33 @@ SHOW ATTRIBUTE/ALL foobar
  foobar.some_text = "quoted attribute" 
  
 ! ======
-SPAWN    "ls weird_name1.*"
-weird_name1.cdf
-SPAWN _DQ_ls weird_name1.*_DQ_
-weird_name1.cdf
+SPAWN    "ls data/weird_name1.*"
+data/weird_name1.cdf
+SPAWN _DQ_ls data/weird_name1.*_DQ_
+data/weird_name1.cdf
  
 ! ======
-LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LET a = {"first.nc", SPAWN:   "ls data/weird_name1.*"   ,"last.nc"}
 LIST a
-             VARIABLE : {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+             VARIABLE : {"first.nc", SPAWN:   "ls data/weird_name1.*"   ,"last.nc"}
              SUBSET   : 3 points (X)
- 1   / 1:"first.nc"       
- 2   / 2:"weird_name1.cdf"
- 3   / 3:"last.nc"        
-LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ 1   / 1:"first.nc"            
+ 2   / 2:"data/weird_name1.cdf"
+ 3   / 3:"last.nc"             
+LET a = {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
 LIST a
-             VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+             VARIABLE : {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
              SUBSET   : 3 points (X)
- 1   / 1:"first.nc"       
- 2   / 2:"weird_name1.cdf"
- 3   / 3:"last.nc"        
+ 1   / 1:"first.nc"            
+ 2   / 2:"data/weird_name1.cdf"
+ 3   / 3:"last.nc"             
  
 ! =========================
 ! !!!!!!  TEMPORARY LINE
 ! !!!!!!  see bug report err693_xeq_show.jnl
 show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
      currently SET data sets:
-    1> ./weird_name1.cdf  (default)
+    1> ./data/weird_name1.cdf  (default)
  name     title                             I         J         K         L
  v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
@@ -80461,7 +80102,7 @@ GO err694_longname_showdat
 !
 ! Make a file whose name starts the same as file with long name.
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
-sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
  
 use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
  
@@ -80469,7 +80110,7 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 ! this previously returned an unknown dataset error
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
-    1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
+    1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
  name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
@@ -80487,7 +80128,7 @@ sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
 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
+    1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
  name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
@@ -81307,20 +80948,20 @@ SET VAR/layerz=depth temp[d=levitus_3d_subset]
 SHOW VAR/LAYERZ/d=levitus_3d_subset temp
   DEPTH holds the designated vertical (layerz) coordinates of TEMP
 SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
-     attributes for dataset: ./levitus_3d_subset.nc
+     attributes for dataset: ./data/levitus_3d_subset.nc
  TEMP.__LayerzRef_ = DEPTH 
 ! modify the layerz link
 SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
 SHOW VAR/LAYERZ/d=levitus_3d_subset temp
   NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
 SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
-     attributes for dataset: ./levitus_3d_subset.nc
+     attributes for dataset: ./data/levitus_3d_subset.nc
  TEMP.__LayerzRef_ = NEWDEPTH 
 cancel var/layerz temp[d=levitus_3d_subset]
 SHOW VAR/LAYERZ/d=levitus_3d_subset temp
   No variable holds vertical (layerz) coordinates of TEMP
 SHOW ATT temp[d=levitus_3d_subset]   ! __LayerzRef_ has been deleted
-     attributes for dataset: ./levitus_3d_subset.nc
+     attributes for dataset: ./data/levitus_3d_subset.nc
  TEMP.missing_value = -1.E+10
  TEMP._FillValue = -1.E+10
  TEMP.long_name = TEMPERATURE 
@@ -81713,7 +81354,7 @@ stat/z=100 temp6d-tempz6d
              T: 0.5 to 2.5
              E: 0.5 to 2.5
              F: 0.5 to 2.5
-             DATA SET: ./levitus_3d_subset.nc
+             DATA SET: ./data/levitus_3d_subset.nc
  
  Total # of data points: 32 (2*2*1*2*2*2)
  # flagged as bad  data: 0
@@ -81730,7 +81371,7 @@ stat/z=400 temp6d-tempz6d
              T: 0.5 to 2.5
              E: 0.5 to 2.5
              F: 0.5 to 2.5
-             DATA SET: ./levitus_3d_subset.nc
+             DATA SET: ./data/levitus_3d_subset.nc
  
  Total # of data points: 32 (2*2*1*2*2*2)
  # flagged as bad  data: 0
@@ -81886,7 +81527,7 @@ LIST/PREC=7 tempz6d_tDep
  48.5S / 2:  6.347000  6.533000
  49.5S / 1:  5.341800  5.563000
 LIST/PREC=7/k=7:8 temp6d_const, depth6d  ! reference values at Z=100, 200, 300 for visual comparison
-             DATA SET: ./levitus_3d_subset.nc
+             DATA SET: ./data/levitus_3d_subset.nc
              LONGITUDE: 120E to 122E
              LATITUDE: 50S to 48S
              DEPTH (m): 87.5 to 175
@@ -85172,7 +84813,7 @@ LET var1 =  FLOATSTR(sst-10,"(i5.5)")
 LET var2 =  FLOATSTR(sst-10,"(i05)")
  
 LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 91S to 11S
              LONGITUDE: 165W
              TIME: 16-JAN 06:00
@@ -85228,7 +84869,7 @@ list  floatstr(a, "(f04.1)")
 LET var1 =  FLOATSTR(sst-20,"(f5.1)")
 LET var2 =  FLOATSTR(sst-20,"(f05.1)")
 LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 91S to 11S
              LONGITUDE: 165W
              TIME: 16-JAN 06:00
@@ -85264,7 +84905,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
 LET var1 =  FLOATSTR(sst-20,"(f0.0)")
 LET var2 =  FLOATSTR(sst-20,"(I0)")
 LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              LATITUDE: 91S to 11S
              LONGITUDE: 165W
              TIME: 16-JAN 06:00
@@ -85338,13 +84979,13 @@ USE coads_climatology
  
 SHOW DATA 1
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  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)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -85898,7 +85539,7 @@ GO err696_ft_calendars
 use ft_cal_one.nc
 sh dat
      currently SET data sets:
-    1> ./ft_cal_one.nc  (default)
+    1> ./data/ft_cal_one.nc  (default)
  name     title                             I         J         K         L         M         N
  TIMEVAR  GRIB forecast or observation ti  ...       ...       ...       1:2       ...       1:3
  
@@ -86053,7 +85694,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -86141,10 +85782,10 @@ define data/agg/E fourfiles = ens1, ens3, ens2, ens4
  
 show data/brief
      currently SET data sets:
-    1> ./ens1.nc
-    2> ./ens2.nc
-    3> ./ens3.nc
-    4> ./ens4.nc
+    1> ./data/ens1.nc
+    2> ./data/ens2.nc
+    3> ./data/ens3.nc
+    4> ./data/ens4.nc
     5> fourfiles  (default)  Ensemble aggregation
  
 list/i=3 sst[T=@ave]
@@ -86296,7 +85937,7 @@ IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS
    let//d=coads_sst myvar = 1
    sh dat
      currently SET data sets:
-    1> ./coads_climatology.cdf
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
@@ -86918,7 +86559,7 @@ go err696_write_no_dim
 use nodim
 sh dat
      currently SET data sets:
-    1> ./nodim.nc  (default)
+    1> ./data/nodim.nc  (default)
  name     title                             I         J         K         L
  EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
  NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
@@ -86955,7 +86596,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88056,7 +87697,7 @@ 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
+    1> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -88347,7 +87988,7 @@ show data/brief
     2> myagg1
     3> myagg2
     4> myAgg2
-    5> ./bn_aggregate_t.jnl  (default)
+    5> ./v6jnls/bn_aggregate_t.jnl  (default)
  
 ! define a long aggregation
 define data/agg/t myagg8 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc, tmp/tagg_reg_4.nc,tmp/tagg_reg_5.nc, tmp/tagg_reg_6.nc,tmp/tagg_reg_7.nc, tmp/tagg_reg_8.nc
@@ -88415,7 +88056,7 @@ show data/full  ! all 4 datasets
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
 11-JAN-1980 00:00 -> 20-JAN-1980 00:00    tmp/tagg_reg_2.nc
  
-    5> ./bn_aggregate_t.jnl
+    5> ./v6jnls/bn_aggregate_t.jnl
  
      T-aggregation of 2 netCDF files
  name     title                             I         J         K         L
@@ -90927,13 +90568,13 @@ cancel data my_fmrc
 fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
 show data/brief
      currently SET data sets:
-    6> ./bn_aggregate_f.jnl  (default)  Forecast aggregation
+    6> ./v6jnls/bn_aggregate_f.jnl  (default)  Forecast aggregation
  
 ! the same agg using the very same files under a different name
 fmrc/hide my_fmrc = tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
 show data/full
      currently SET data sets:
-    6> ./bn_aggregate_f.jnl     Forecast aggregation
+    6> ./v6jnls/bn_aggregate_f.jnl     Forecast aggregation
      Forecast series of 5 datasets patterned on fcst_3.nc
  name     title                             I         J         K         L         M         N
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:5
@@ -90989,7 +90630,7 @@ show data/br/hidden
     3> tmp/fcst_5.nc
     4> tmp/one_var_fcst_6.nc
     5> tmp/fcst_3.nc
-    6> ./bn_aggregate_f.jnl     Forecast aggregation
+    6> ./v6jnls/bn_aggregate_f.jnl     Forecast aggregation
 cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
 show data
      currently SET data sets:
@@ -91749,7 +91390,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        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
@@ -92183,7 +91824,7 @@ let nv = ..nvars
 let nd = ..ndims
 let vnames = ..varnames
 list/DAT=1 nv, nd
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
@@ -92207,14 +91848,14 @@ list/DAT=1 vnames
  12   / 12:"PSI"   
  
 list/DAT=coads_climatology nv,nd
-             DATA SET: ./coads_climatology.cdf
+             DATA SET: ./data/coads_climatology.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
              NV    ND
 I / *:     1.000  3.000
 list/DAT=gt4d011 nv,nd
-             DATA SET: ./gt4d011.cdf
+             DATA SET: ./data/gt4d011.cdf
              X: 1
  Column  1: NV is ..NVARS
  Column  2: ND is ..NDIMS
@@ -92233,7 +91874,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.21  DD-MON-YY 
+ ..history = FERRET V7.3  DD-MON-YY 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -92254,7 +91895,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7.21  DD-MON-YY 
+ ..history = FERRET V7.3  DD-MON-YY 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -92307,7 +91948,7 @@ list/DAT=3 temp.history
 let/DAT=2 temp = sst + 0*z[z=1:5:1]
 sh dat 2
      currently SET data sets:
-    2> ./coads_climatology.cdf
+    2> ./data/coads_climatology.cdf
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -92329,7 +91970,7 @@ stat/DATASET=1 elev
              T (day): 1.7837
              E:  N/A
              F:  N/A
-             DATA SET: ./err491_attval.cdf
+             DATA SET: ./data/err491_attval.cdf
  
  Total # of data points: 4445 (35*127*1*1*1*1)
  # flagged as bad  data: 3065
@@ -92413,13 +92054,13 @@ USE a1478.nc
 USE a_cartesian_bug1179.nc
 show data
      currently SET data sets:
-    1> ./a1478.nc
+    1> ./data/a1478.nc
  name     title                             I         J         K         L
  lat1_5_bnds
                                            1:2       1:5       ...       ...
  olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  
-    2> ./a_cartesian_bug1179.nc  (default)
+    2> ./data/a_cartesian_bug1179.nc  (default)
  name     title                             I         J         K         L
  temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
@@ -92454,7 +92095,7 @@ LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
  
 show data
      currently SET data sets:
-    1> ./a1478.nc
+    1> ./data/a1478.nc
  name     title                             I         J         K         L
  lat1_5_bnds
                                            1:2       1:5       ...       ...
@@ -92462,7 +92103,7 @@ show data
  ------------------------------
  zvar[D=a1478] = 2*TEMP[D=2]
  
-    2> ./a_cartesian_bug1179.nc  (default)
+    2> ./data/a_cartesian_bug1179.nc  (default)
  name     title                             I         J         K         L
  temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  ------------------------------
@@ -92485,7 +92126,7 @@ say/quiet <data>
 show var/xml
 show data/var/xml
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
 <title> </title>
 <var name="temp">
 <attribute name="units" type="char">
@@ -92669,7 +92310,7 @@ USE a_cartesian_bug1179.nc
  
 SHO DATA/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
 <title> </title>
 <var name="temp" />
 </dataset>
@@ -92677,7 +92318,7 @@ SHO DATA/XML
  
 SHO DATA/VAR/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
 <title> </title>
 <var name="temp">
 <attribute name="units" type="char">
@@ -93034,7 +92675,7 @@ LET/D=a_cartesian_bug1179 temp_180 = temp[X=79E:79E at AVE]
  
 SHOW DATA/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
 <title> </title>
 <var name="temp" />
 <var name="temp_180" />
@@ -93044,12 +92685,12 @@ SHOW DATA/XML
 USE a1478.nc
 SHOW DATA/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
 <title> </title>
 <var name="temp" />
 <var name="temp_180" />
 </dataset>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
 <title> </title>
 <var name="lat1_5_bnds" />
 <var name="olr" />
@@ -93057,7 +92698,7 @@ SHOW DATA/XML
 </datasets>
 SHO DATA/VAR/XML
 <datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
 <title> </title>
 <var name="temp">
 <attribute name="units" type="char">
@@ -93258,7 +92899,7 @@ SHO DATA/VAR/XML
 </attribute>
 </axis>
 </axes>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
 <title> </title>
 <var name="lat1_5_bnds">
 <attribute name="ferret_datatype" type="char">
@@ -93470,7 +93111,7 @@ let/d=1/title="coads myvar" myvar = 1
 ! Now SHOW DATA/ATT lists the LET/D variables, as SHOW DATA does
 show dat 1
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
@@ -93479,7 +93120,7 @@ show dat 1
  
 show dat/att 1
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -93514,7 +93155,7 @@ show dat/att 1
   
  
 show att myvar
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  myvar.long_name = coads myvar 
  myvar.missing_value = -1.E+34
  
@@ -93534,7 +93175,7 @@ use levitus_climatology
 let/d=2/title="Levitus myvar" myvar = 2
 show dat 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf  (default)
+    2> ./data/levitus_climatology.cdf  (default)
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  ------------------------------
@@ -93542,7 +93183,7 @@ show dat 2
  
 show dat/att 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf  (default)
+    2> ./data/levitus_climatology.cdf  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -93580,7 +93221,7 @@ show att myvar
  myvar.missing_value = -1.E+34
  
 show att/d=1 myvar
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  myvar.long_name = coads myvar 
  myvar.missing_value = -1.E+34
  
@@ -93608,18 +93249,18 @@ list vnames
 cancel var/all
 show dat
      currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
+    1> ./data/coads_climatology.cdf  (default)
  name     title                             I         J         K         L
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
-    2> ./levitus_climatology.cdf
+    2> ./data/levitus_climatology.cdf
  name     title                             I         J         K         L
  TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
  
 show dat/att 2
      currently SET data sets:
-    2> ./levitus_climatology.cdf
+    2> ./data/levitus_climatology.cdf
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -93662,7 +93303,7 @@ let/d=2/title="Levitus myvar" myvar = 2
 define att/output temp.my_new_att="temperature attrib"
 define att/output myvar.units="meters"
 show att temp
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  TEMP.missing_value = -1.E+10
  TEMP._FillValue = -1.E+10
  TEMP.long_name = TEMPERATURE 
@@ -93670,7 +93311,7 @@ show att temp
  TEMP.units = DEG C 
  TEMP.my_new_att = temperature attrib 
 show att myvar
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  myvar.long_name = Levitus myvar 
  myvar.missing_value = -1.E+34
  myvar.units = meters 
@@ -93680,7 +93321,7 @@ define att/output/d=2 myvar.standard_name = "None"
  
 define att/output/d=1 myvar.units="feet"
 show att/d=1 myvar
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  myvar.long_name = coads myvar 
  myvar.missing_value = -1.E+34
  myvar.units = feet 
@@ -93688,7 +93329,7 @@ save/clobber/file=a.nc myvar[d=1]
 sp ncdump -h a.nc >> all_ncdump.out
  
 show att/d=2 myvar
-     attributes for dataset: ./levitus_climatology.cdf
+     attributes for dataset: ./data/levitus_climatology.cdf
  myvar.long_name = Levitus myvar 
  myvar.missing_value = -1.E+34
  myvar.units = meters 
@@ -94009,7 +93650,7 @@ sho command set
  SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
  SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
-      /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+      /TYPE/SWAP/REGULART/DELIMITE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
  SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -94034,7 +93675,7 @@ sho command set l  ! SET LIST
       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
 sho command set d  ! SET DATA
  SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
-      /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+      /TYPE/SWAP/REGULART/DELIMITE/STRICT
 sho command set m  ! SET MODE
  SET MODE/LAST
 sho command set mov! SET MOVIE
@@ -94387,7 +94028,7 @@ sho command/brief v
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET  version7.21:
+ Commands in Program FERRET  version7.3:
  SET
  SHOW
  CANCEL
@@ -94802,7 +94443,7 @@ go err700_reg_axis_check
 use bug2445.nc
 show data
      currently SET data sets:
-    1> ./bug2445.nc  (default)
+    1> ./data/bug2445.nc  (default)
  name     title                             I         J         K         L
  XAX                                       1:5       ...       ...       ...
        (invalid coordinate axis)
@@ -94883,7 +94524,7 @@ go err700_inherit_all
 ! This non-standardfile has no missing-value attributes.
 use no_miss_att.nc
 sh att a
-     attributes for dataset: ./no_miss_att.nc
+     attributes for dataset: ./data/no_miss_att.nc
  A.min_value = 1
  A.max_value = 3
  A.long_name = {1,2,3} 
@@ -95776,7 +95417,7 @@ go err700_coords
  
 use err700_coords.nc
 list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
-             DATA SET: ./err700_coords.nc
+             DATA SET: ./data/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)
@@ -96077,7 +95718,7 @@ variables:
 		VAR:long_name = "X[GX=XLON]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 go bn_reset
@@ -96136,7 +95777,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -96183,7 +95824,7 @@ variables:
 		VAR:history = "From a1" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -96202,7 +95843,7 @@ sh axis `var,return=xaxis`
 use coads_climatology
 sh att (`sst,return=xaxis`)
  !-> sh att (COADSX)
-     attributes for dataset: ./coads_climatology.cdf
+     attributes for dataset: ./data/coads_climatology.cdf
  (COADSX).units = degrees_east 
  (COADSX).modulo =   
  (COADSX).point_spacing = even 
@@ -96284,6 +95925,7 @@ FRAME /FILE=forecast_actual.gif
 ! 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 (G###)
  name       axis              # pts   start                end                 subset
@@ -96293,6 +95935,7 @@ SHOW GRID diagview
  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
@@ -96424,16 +96067,14 @@ frame/file=legend_1d_plots.gif
 ! legend labels are titles
 sh sym lab*
 LABX = "Temperature Avg (deg. C)"
-LAB1 = "DEPTH (m) : 0 to 4149"
+LAB1 = "January Taux"
 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
  
@@ -96525,20 +96166,20 @@ sh dat
 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)
+    1> ./data/delim_datetime.csv  (default)
  name     title                             I         J         K         L
- INDEX    index                            1:8       ...       ...       ...
- EDTIM    edtim                            1:8       ...       ...       ...
+ INDEX    index                            1:5       ...       ...       ...
+ EDTIM    edtim                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
- UDTIM    udtim                            1:8       ...       ...       ...
+ UDTIM    udtim                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
- UDATE    udate                            1:8       ...       ...       ...
+ UDATE    udate                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
- EDATE    edate                            1:8       ...       ...       ...
+ EDATE    edate                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
 list index,edtim,udtim,udate,edate
-             DATA SET: ./delim_datetime.csv
+             DATA SET: ./data/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)
@@ -96618,7 +96259,7 @@ T0 = 1-JAN-1900
 columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
 sh dat
      currently SET data sets:
-    1> ./delim_datetime.csv
+    1> ./data/delim_datetime.csv
  name     title                             I         J         K         L
  INDEX    index                            1:5       ...       ...       ...
  EDTIM    edtim                            1:5       ...       ...       ...
@@ -96630,16 +96271,16 @@ sh dat
  EDATE    edate                            1:5       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
-    2> ./delim_yyyy.csv  (default)
+    2> ./data/delim_yyyy.csv  (default)
  name     title                             I         J         K         L
- INDEX    index                            1:8       ...       ...       ...
- UDATE    udate                            1:8       ...       ...       ...
+ INDEX    index                            1:6       ...       ...       ...
+ UDATE    udate                            1:6       ...       ...       ...
        (Julian days since 1-Jan-1900)
- UDTIM    udtim                            1:8       ...       ...       ...
+ UDTIM    udtim                            1:6       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
 list/prec=10 index,udate,udtim
-             DATA SET: ./delim_yyyy.csv
+             DATA SET: ./data/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)
@@ -96730,7 +96371,7 @@ 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
+    5> ./v7jnls/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
@@ -97333,7 +96974,7 @@ variables:
 		abc:history = "From abc.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97345,15 +96986,15 @@ sh dat
  name     title                             I         J         K         L
  abc      abc                              1:5       ...       ...       ...
  
-    2> ./bn_delimited_read_1.dat  (default)
+    2> ./data/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       ...       ...       ...
+ lab      lab                              1:6       ...       ...       ...
+ nothing  nothing                          1:6       ...       ...       ...
+ var      var                              1:6       ...       ...       ...
+ latitude latitude                         1:6       ...       ...       ...
        (Latitude)
  longitude
-          longitude                        1:7       ...       ...       ...
+          longitude                        1:6       ...       ...       ...
        (Longitude)
  
 sh dat/att
@@ -97367,7 +97008,7 @@ sh dat/att
  abc                   DOUBLE    long_name       CHAR        3    T       abc
                                  missing_value   DOUBLE      1    T       -1.E+34
   
-    2> ./bn_delimited_read_1.dat  (default)
+    2> ./data/bn_delimited_read_1.dat  (default)
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
@@ -97420,7 +97061,7 @@ variables:
 		latitude:history = "From bn_delimited_read_1.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -97433,9 +97074,9 @@ set mode/last upcase
 !  8/2016 *acm*
  
 sp ls notafile.nowhere
-sp grep "this text is not in the file" bn_all.jnl
+sp grep "this text is not in the file" genjnls/bn_all.jnl
 sp rm nothing.dat
-sp grep modulus non_COARDS.cdl
+sp grep modulus data/non_COARDS.cdl
 sp cp nofile.dat not_either.dat
 *** Running ferret script: bn_ave_of_ave.jnl
 ! bn_ave_of_ave.jnl
@@ -97656,7 +97297,7 @@ cancel var/all
 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
+    5> ./v7jnls/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
@@ -97684,7 +97325,7 @@ show data 5.3
 cancel data/all
  
 ! Tests for Ensembles
-let files = SPAWN("ls -1 ens*.nc")
+let files = SPAWN("ls -1 data/ens*.nc")
 ensemble my_ens = files
 sh data/members my_ens
      currently SET data sets:
@@ -97693,14 +97334,14 @@ sh data/members my_ens
  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
+      5.1: data/ens1.nc
+      5.2: data/ens2.nc
+      5.3: data/ens3.nc
+      5.4: data/ens4.nc
  
 show data 5.3
      currently SET data sets:
-    3> ./ens3.nc
+    3> data/ens3.nc
  name     title                             I         J         K         L
  SST      SST_IN                           1:10      1:9       ...       1:12
  
@@ -97730,7 +97371,7 @@ stat sst[d=5.2]
              TIME: 01-JAN 00:45 to 31-DEC 06:34
              E:  N/A
              F:  N/A
-             DATA SET: ./ens2.nc
+             DATA SET: data/ens2.nc
  
  Total # of data points: 1080 (10*9*1*12*1*1)
  # flagged as bad  data: 289
@@ -97747,7 +97388,7 @@ ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
 ! not this is dataset 2
 show data 5.3
      currently SET data sets:
-    3> ./ens2.nc
+    3> ./data/ens2.nc
  name     title                             I         J         K         L
  SST      SST_IN                           1:10      1:9       ...       1:12
  
@@ -98109,7 +97750,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98178,7 +97819,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98249,7 +97890,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        23   T       FERRET V7.21  DD-MON-YY
+ .                               history         CHAR        22   T       FERRET V7.3  DD-MON-YY
                                  Conventions     CHAR        6    F       CF-1.6
   
 (TAXIS1)               DOUBLE    axis            CHAR        1    T       T
@@ -98658,7 +98299,7 @@ variables:
 		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98796,10 +98437,10 @@ 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
+ canceling dset ./data/ocean_atlas_temp.cdf
+ canceling dset ./data/gt4d011.cdf
+ canceling dset ./data/levitus_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
  
 ! this line seems to be essential making the crash happen
 PPL TICS .125,.25,.125,.25 !reset tics to default
@@ -98835,7 +98476,7 @@ cancel mode verify
  -DELETE A        M:  2 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  -DELETE attr     M:  3 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
- canceling dset ./coads_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
 ooooooooooooooooooooooooooooooooooooooooooo
 GO err71_user_var_attrib
 ! err71_user_var_attrib.jnl
@@ -99065,7 +98706,7 @@ variables:
 		uave:history = "From 6dfile" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99115,7 +98756,7 @@ variables:
 		uave:history = "From 6dfile" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99162,7 +98803,7 @@ variables:
 		uave:history = "From 6dfile" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99318,7 +98959,7 @@ variables:
 		BIN:history = "From shorttest.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -99534,7 +99175,7 @@ stat co_emac
              T:  N/A
              E:  N/A
              F:  N/A
-             DATA SET: ./co_emac.nc
+             DATA SET: ./data/co_emac.nc
  
  Total # of data points: 48 (12*4*1*1*1*1)
  # flagged as bad  data: 4
@@ -100294,6 +99935,9 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
 ! ... test irregular axes (unequal weighting) and see how significant are
 !     the changes in results from old Ferret (particularly on @var)
  
+ 
+! clean up
+set mem/siz=25.6  ! return to the default setting
 *** Running ferret script: bn_dynamic_gather.jnl
 ! bn_dynamic_gather.jnl
 ! *sh* 3/2017
@@ -100611,16 +100255,13 @@ 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
+        V              Y     AV4        98           2
     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
+    Peak demand: 980022 words
+    Current cache: 200024 words
 cancel memory/all
  
 ! **************************************************
@@ -100637,14 +100278,13 @@ stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
 show memory/diagnostic       ! split on T-Y
     Last gather
         Variable    Axis   Xform     Chunk    Repeated
-        V              T     SUM         1           1
-        V              Y     AV4       494          10
+        V              Y     AV4        49           1
     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
+    Peak demand: 980020 words
+    Current cache: 400022 words
 cancel memory/all
  
 ! **************************************************
@@ -101050,119 +100690,119 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 ---
 >     Peak demand: 692002 words
 >     Current cache: 616002 words
-263c276
-<         V              Y     AV4       989          10
+262c275
+<         V              Y     AV4        98           2
 ---
->         V              Y     AV4       692          10
-265c278
-<         V              Y     AV4       989          10
+>         V              Y     AV4        69           2
+267,268c280,281
+<     Peak demand: 980022 words
+<     Current cache: 200024 words
 ---
->         V              Y     AV4       692          10
-270,271c283,284
-<     Peak demand: 989006 words
-<     Current cache: 11006 words
+>     Peak demand: 690022 words
+>     Current cache: 340024 words
+285c298
+<         V              Y     AV4        49           1
 ---
->     Peak demand: 692006 words
->     Current cache: 308006 words
-289c302
-<         V              Y     AV4       494          10
+>         V              Y     AV4        34           1
+287c300
+<     Free table slots: 497
 ---
->         V              Y     AV4       346          10
-294,295c307,308
-<     Peak demand: 988004 words
-<     Current cache: 24004 words
+>     Free table slots: 496
+290,291c303,304
+<     Peak demand: 980020 words
+<     Current cache: 400022 words
 ---
->     Peak demand: 692004 words
->     Current cache: 616004 words
-312c325
+>     Peak demand: 680020 words
+>     Current cache: 960022 words
+308c321
 <         V              Y     AV4        24           1
 ---
 >         V              Y     AV4        17           1
-314c327
+310c323
 <     Free table slots: 494
 ---
 >     Free table slots: 492
-317,318c330,331
+313,314c326,327
 <     Peak demand: 480962 words
 <     Current cache: 802562 words
 ---
 >     Peak demand: 340682 words
 >     Current cache: 962602 words
-360c373
+356c369
 <         V1000          Z                 3           1
 ---
 >         V1000          Z                 2           1
-365,366c378,379
+361,362c374,375
 <     Peak demand: 3.108 megawords
 <     Current cache: 1.096 megawords
 ---
 >     Peak demand: 2.12 megawords
 >     Current cache: 2.096 megawords
-381c394
+377c390
 <         V1000          Y                22           1
 ---
 >         V1000          Y                15           1
-386,387c399,400
+382,383c395,396
 <     Peak demand: 959680 words
 <     Current cache: 544320 words
 ---
 >     Peak demand: 669600 words
 >     Current cache: 460000 words
-406a420
+402a416
 >         V1000          Z                 2          99
-408c422
+404c418
 <     Free table slots: 496
 ---
 >     Free table slots: 493
-411,412c425,426
+407,408c421,422
 <     Peak demand: 89440 words
 <     Current cache: 88960 words
 ---
 >     Peak demand: 69200 words
 >     Current cache: 89440 words
-434c448
+430c444
 <         V              T     AVE         1           1
 ---
 >         V              Y     AVE        91           1
-436c450
+432c446
 <     Free table slots: 498
 ---
 >     Free table slots: 496
-439,440c453,454
+435,436c449,450
 <     Peak demand: 3 megawords
 <     Current cache: 3 megawords
 ---
 >     Peak demand: 2.092 megawords
 >     Current cache: 2.262 megawords
-457c471
+453c467
 <         A              Y     AVE        47           1
 ---
 >         A              Y     AVE        26           1
-459c473
+455c469
 <     Free table slots: 491
 ---
 >     Free table slots: 487
-462,463c476,477
+458,459c472,473
 <     Peak demand: 1.94 megawords
 <     Current cache: 2.884 megawords
 ---
 >     Peak demand: 1.52 megawords
 >     Current cache: 2.98 megawords
-476c490
+472c486
 <         D              Y     AVE        47           1
 ---
 >         D              Y     AVE        26           1
-478c492
+474c488
 <     Free table slots: 489
 ---
 >     Free table slots: 487
-481,482c495,496
+477,478c491,492
 <     Peak demand: 2.41 megawords
 <     Current cache: 2.84 megawords
 ---
 >     Peak demand: 1.78 megawords
 >     Current cache: 2.836 megawords
-514,517c528,531
+510,513c524,527
 <         A              T     AVE         1           1
 <         B              Y     AVE        71           1
 <         C              Y     AVE        47           1
@@ -101172,33 +100812,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
 >         B              Y     AVE        59           1
 >         C              Y     AVE        42           1
 >         D              Y     AVE        26           1
-519c533
+515c529
 <     Free table slots: 487
 ---
 >     Free table slots: 484
-522,523c536,537
+518,519c532,533
 <     Peak demand: 2.845 megawords
 <     Current cache: 2.979 megawords
 ---
 >     Peak demand: 2.39 megawords
 >     Current cache: 2.918 megawords
-538,539c552,553
+534,535c548,549
 <         A              Y     AVE        47           1
 <         B              Y     AVE        23           1
 ---
 >         A              Y     AVE        26           1
 >         B              Y     AVE         9           1
-541c555
+537c551
 <     Free table slots: 491
 ---
 >     Free table slots: 481
-544,545c558,559
+540,541c554,555
 <     Peak demand: 2.46 megawords
 <     Current cache: 2.794 megawords
 ---
 >     Peak demand: 2.18 megawords
 >     Current cache: 2.922 megawords
-551c565
+547c561
 < ! excercise under the default memory management
 ---
 > ! excercise under pretty strict memory management
@@ -101442,151 +101082,147 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 ---
 >     Peak demand: 394002 words
 >     Current cache: 818002 words
-263c360
-<         V              Y     AV4       989          10
+262c359
+<         V              Y     AV4        98           2
 ---
->         V              Y     AV4       395          10
-265c362
-<         V              Y     AV4       989          10
----
->         V              Y     AV4       395          10
-267c364
+>         V              Y     AV4        39           2
+264c361
 <     Free table slots: 496
 ---
 >     Free table slots: 495
-270,271c367,368
-<     Peak demand: 989006 words
-<     Current cache: 11006 words
+267,268c364,365
+<     Peak demand: 980022 words
+<     Current cache: 200024 words
 ---
->     Peak demand: 395006 words
->     Current cache: 605006 words
-289c386
-<         V              Y     AV4       494          10
+>     Peak demand: 390022 words
+>     Current cache: 640024 words
+285c382
+<         V              Y     AV4        49           1
 ---
->         V              Y     AV4       197          10
-291c388
+>         V              Y     AV4        19           1
+287c384
 <     Free table slots: 497
 ---
->     Free table slots: 495
-294,295c391,392
-<     Peak demand: 988004 words
-<     Current cache: 24004 words
+>     Free table slots: 496
+290,291c387,388
+<     Peak demand: 980020 words
+<     Current cache: 400022 words
 ---
->     Peak demand: 394004 words
->     Current cache: 818004 words
-312c409
+>     Peak demand: 380020 words
+>     Current cache: 620022 words
+308c405
 <         V              Y     AV4        24           1
 ---
 >         V              Y     AV4         9           1
-314c411
+310c407
 <     Free table slots: 494
 ---
 >     Free table slots: 486
-317,318c414,415
+313,314c410,411
 <     Peak demand: 480962 words
 <     Current cache: 802562 words
 ---
 >     Peak demand: 180362 words
 >     Current cache: 922202 words
-339c436,438
+335c432,434
 <     No split/gather occurred in the last evaluation
 ---
 >     Last gather
 >         Variable    Axis   Xform     Chunk    Repeated
 >         V1000          Z                 3           1
-341c440
+337c436
 <     Free table slots: 498
 ---
 >     Free table slots: 495
-344,345c443,444
+340,341c439,440
 <     Peak demand: 4.144 megawords
 <     Current cache: 4.048 megawords
 ---
 >     Peak demand: 3.108 megawords
 >     Current cache: 4.096 megawords
-360c459
+356c455
 <         V1000          Z                 3           1
 ---
 >         V1000          Z                 1           1
-362c461
+358c457
 <     Free table slots: 496
 ---
 >     Free table slots: 492
-365,366c464,465
+361,362c460,461
 <     Peak demand: 3.108 megawords
 <     Current cache: 1.096 megawords
 ---
 >     Peak demand: 1.084 megawords
 >     Current cache: 3.096 megawords
-381c480
+377c476
 <         V1000          Y                22           1
 ---
 >         V1000          Y                 8           1
-383c482
+379c478
 <     Free table slots: 496
 ---
 >     Free table slots: 492
-386,387c485,486
+382,383c481,482
 <     Peak demand: 959680 words
 <     Current cache: 544320 words
 ---
 >     Peak demand: 379520 words
 >     Current cache: 861440 words
-406a506
+402a502
 >         V1000          Z                 3         100
-408c508
+404c504
 <     Free table slots: 496
 ---
 >     Free table slots: 488
-411,412c511,512
+407,408c507,508
 <     Peak demand: 89440 words
 <     Current cache: 88960 words
 ---
 >     Peak demand: 58840 words
 >     Current cache: 89560 words
-434c534
+430c530
 <         V              T     AVE         1           1
 ---
 >         V              Y     AVE        16           1
-436c536
+432c532
 <     Free table slots: 498
 ---
 >     Free table slots: 478
-439,440c539,540
+435,436c535,536
 <     Peak demand: 3 megawords
 <     Current cache: 3 megawords
 ---
 >     Peak demand: 1.192 megawords
 >     Current cache: 2.856 megawords
-457c557
+453c553
 <         A              Y     AVE        47           1
 ---
 >         A              Y     AVE         4           1
-459c559
+455c555
 <     Free table slots: 491
 ---
 >     Free table slots: 431
-462,463c562,563
+458,459c558,559
 <     Peak demand: 1.94 megawords
 <     Current cache: 2.884 megawords
 ---
 >     Peak demand: 1.08 megawords
 >     Current cache: 2.984 megawords
-476c576
+472c572
 <         D              Y     AVE        47           1
 ---
 >         D              Y     AVE         4           1
-478c578
+474c574
 <     Free table slots: 489
 ---
 >     Free table slots: 442
-481,482c581,582
+477,478c577,578
 <     Peak demand: 2.41 megawords
 <     Current cache: 2.84 megawords
 ---
 >     Peak demand: 1.12 megawords
 >     Current cache: 2.992 megawords
-514,517c614,617
+510,513c610,613
 <         A              T     AVE         1           1
 <         B              Y     AVE        71           1
 <         C              Y     AVE        47           1
@@ -101596,33 +101232,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
 >         B              Y     AVE        23           1
 >         C              Y     AVE        14           1
 >         D              Y     AVE         4           1
-519c619
+515c615
 <     Free table slots: 487
 ---
 >     Free table slots: 439
-522,523c622,623
+518,519c618,619
 <     Peak demand: 2.845 megawords
 <     Current cache: 2.979 megawords
 ---
 >     Peak demand: 2.06 megawords
 >     Current cache: 2.996 megawords
-538,539c638,639
+534,535c634,635
 <         A              Y     AVE        47           1
 <         B              Y     AVE        23           1
 ---
 >         A              Y     AVE         4           1
 >         B              Y     AVE         9           1
-541c641
+537c637
 <     Free table slots: 491
 ---
 >     Free table slots: 481
-544,545c644,645
+540,541c640,641
 <     Peak demand: 2.46 megawords
 <     Current cache: 2.794 megawords
 ---
 >     Peak demand: 2.18 megawords
 >     Current cache: 2.922 megawords
-551d650
+547d646
 < ! excercise under the default memory management
  
  
@@ -101631,6 +101267,9 @@ SET MODE IGNORE
 SET MODE FRUGAL:95
 SET MODE/LAST IGNORE
  
+ 
+! clean up
+set mem/siz=25.6  ! return to the default setting
 *** Running ferret script: bn_stat_precision.jnl
 ! bn_stat_precision.jnl
 ! 3/2017 *acm* Ticket 2512
@@ -103402,6 +103041,843 @@ list yvar[j=@sum]
              Y        : 0.5 to 3.5 (summed)
           0.0000
  
+*** Running ferret script: bn722_bug_fixes.jnl
+! bn721_bug_fixes.jnl
+! test various fixes that went into version 7.22
+! 9/17 *acm*
+!
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dynamic_gather
+! err72_dynamic_gather.jnl
+! 9/25/2017 Ticket 2561
+! Combination of two transforms, and
+ 
+cancel data/all
+cancel memory
+ 
+! dataset from bn_dynamic_gather.jnl
+use tmp/test_dyn_mem.nc
+ 
+! w/ default amount of memory this doesn't need a split-gather
+! This result is correct
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+          2236000.
+show memory/diag
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 4.008 megawords
+    Current cache: 4.008002 megawords
+ 
+! Now use smaller memory, so it'll split/gather in the T
+! direction. The answer in v7.2 was wrong.
+cancel memory
+set mem/siz=10
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+          2236000.
+show memory/diag
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 10 megawords
+    Peak demand: 4.008 megawords
+    Current cache: 4.008002 megawords
+ 
+! With an even smaller amount of memory, a different
+! incorrect result was listed with v7.2.
+cancel memory
+set mem/siz=1
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@SUM]
+          2236000.
+sh mem/diag
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          T     AV4       173           1
+    Total table slots: 500
+    Free table slots: 495
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 697384 words
+    Current cache: 546466 words
+ 
+set mem/siz=25.6  ! return to the default setting
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_polymark_log
+ 
+! err721_polymark_log.jnl
+! Ticket 2562, polymark and other polygons over log axis.
+! 9/26/17 ACM
+ 
+let frqs = {0.01,0.011,0.012,0.013,0.014,0.015,0.025,0.026,0.027,0.028,\
+0.029,0.03,0.031,0.032,0.033,0.08,0.108,0.135,0.193,0.194,0.195,0.196,\
+0.197,0.227,0.228,0.229,0.255,0.256,0.31,0.311,0.312,0.362,0.363,0.364}
+ 
+let phas = {61.099,68.796,79.686,80.292, 104.212, 121.192,93.757,\
+102.549,115.240,112.831,103.433,102.032,105.109,104.216,93.173,-7.041,\
+-133.985,-162.018,161.157,154.128,146.717,140.252,132.944,-29.014,\
+-34.848,-38.376,-109.836,-119.620,12.858,17.047,22.327,-167.776,-169.991,-165.467}
+ 
+! Plots with /HLOG
+set v ul
+plot/hlog/vs/vlim=-180:180:45/nolabs/hlim=0.001:0.1 frqs,phas
+go polymark poly/hlog/over/nolabs/nokey/line/pal=red frqs, phas 1 square 0.6
+ 
+ 
+! more dynamic range
+set v ur
+let frq2 = XCAT(frqs, 10*frqs)
+let phas2 = XCAT(phas,phas)
+plot/hlog/vs/vlim=-180:180:45/nolabs frq2, phas2
+go polymark poly/hlog/over/nolabs/nokey/line/pal=green frq2, phas2 1 delta 0.8
+ 
+ 
+! more decades still
+set v ll
+let var3 = XCAT(0.1*frqs, frq2)
+let phas3 = XCAT(phas,phas2)
+plot/hlog/vs/vlim=-180:180:45/nolabs var3, phas3
+go polymark poly/hlog/over/nolabs/nokey/line/pal=purple_light var3, phas3 1 star 1.1
+ 
+ 
+! /VLOG
+set v lr
+plot/vlog/vs/hlim=-180:180:45/nolabs phas3, var3
+go polymark poly/vlog/over/nolabs/nokey/line/pal=blue_light phas3, var3 1 circle 0.7
+ 
+ 
+! Note /VLOG/HLOG together make a blank plot. Not worrying about that now.
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_letd_with_grave
+! err721_letd_with_grave
+! 10/6/17 ACM
+! See ticket 2563. Error parsing the grave-accent expr
+! because of the quotes around datset path and name.
+ 
+use "data/proleptic_gregorian.nc"
+ 
+! This is fine
+let/d="data/proleptic_gregorian.nc" var1 = my_data + 1
+ 
+! This resulted in an error
+let/d="data/proleptic_gregorian.nc" var2 = my_data - `my_data[L=@ave]`
+ !-> DEFINE VARIABLE/d="data/proleptic_gregorian.nc" var2 = my_data - 0.0133574854990002
+show data
+     currently SET data sets:
+    1> data/proleptic_gregorian.nc  (default)
+ name     title                             I         J         K         L
+ MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
+ ------------------------------
+ VAR2[D=proleptic_gregorian] = MY_DATA - 0.0133574854990002
+ VAR1[D=proleptic_gregorian] = MY_DATA + 1
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_color_levels
+! err721_color_levels
+! 10/11/2017 ACM
+! Ticket 2564, setting up color palette and levels for the second
+! plot caused a STOP in PyFerret or in Ferret the gks error message
+!    gsetcolourrep()   96 Colour is outside range [0,1]
+ 
+ 
+let fcn = 0.5*COS(J[j=1:100]/30)+SIN(K[k=1:100]/20)
+fill/pal=land_sea_values/lev=vc 7000*fcn
+ 
+fill/pal=ocean_temp_bounds/lev=(-2,35,2) 18.5*fcn
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dup_labels
+! err721_dup_labels.jnl
+! ticket 2565
+! 10/13/17 ACM
+ 
+set mode logo
+use err721_dup_labels.nc
+ 
+! Draw time plot
+plot new_val
+ppl list labels
+ @ACRESHAPE(V,XTMS)                                                             
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET  Ver.7.3
+ 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  @AS0DD-MON-YYYY HH:MM:SS
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 4  8.000E+00  6.630E+00 0.120    0  SYSTEM  @ASDATA SET: err721_dup_labels
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB 5  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ 
+! Overlay plots should add only the new labels needed. Ferret has
+! always redrawn them all, which was harmless. Now, only draw the
+! ones needed for each new /overlay
+ 
+plot/over/vs/line/color=green/title="deployment mean"  {284.375, 285.5}, {3472.8, 3472.8}
+ppl list labels
+                                                                                
+ @AS{284.375, 285.5}                                                            
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASdeployment mean
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+plot/over/vs/line/color=red/title="HC mean"  {284.375, 285.5}, {3472.9, 3472.9}
+ppl list labels
+                                                                                
+ @AS{284.375, 285.5}                                                            
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.700E-01 -7.300E-01 0.080    0  SYSTEM  @ASHC mean
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+plot/over/vs/line/color=purple/nolab {284.42, 284.42}, {3472.6, 3473.1}
+ 
+! This caused labels below the plot way over to the right by the line
+plot/over/vs/line/color=purple/title="purple" {285.4, 285.4}, {3472.6, 3473.1}
+ppl list labels
+                                                                                
+ @AS{285.4, 285.4}                                                              
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.700E-01 -9.100E-01 0.080    0  SYSTEM  @ASpurple
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+set mode/last logo
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_plotuv
+! err721_plotuv.jnl
+! Ticket 2566: text size of zero causes graphics library errors
+!
+ 
+if ($program_name"0|PyFerret>1|*>0") then set text/font=arial
+ !-> if 0 then set text/font=arial
+ 
+! In PyFerret with -nodisplay a Cairo error on the zero-length
+! text size caused an ERROR and exit. Without -nodisplay it
+! issued errors and used some nominal size
+ 
+use coads_climatology
+let uwnd = sst
+let vwnd = -1*sst
+ 
+plot/set/x=180/y=0 uwnd,vwnd
+ppl axlsze,0,0
+ ppl plotuv 0,1
+ 
+if ($program_name"0|PyFerret>1|*>0") then cancel text
+ !-> if 0 then cancel text
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_ascii_size
+! err721_ascii_size.jnl
+! ACM 10/25/2017  Ticket 2567
+! Initializing an EZ dataset mis-counts the size until data is loaded
+ 
+file/var="t1,t2"/skip=1 err721_ascii_size.dat
+show data
+     currently SET data sets:
+    1> ./data/err721_ascii_size.dat  (default)
+ name     title                             I         J         K         L
+ T1       t1                               1:3       ...       ...       ...
+ T2       t2                               1:3       ...       ...       ...
+ 
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+load t1
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dot_grid
+! err721_dot_grid
+ 
+!!!! using dot_t(v1,v2) works fine
+ 
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot_t(v1,v2)
+ 
+show grid dp
+    GRID (G###)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    3 r   1                    3                   full
+ normal    Y
+ normal    Z
+ normal    T
+ 
+list dp
+             VARIABLE : DOT_T(V1,V2)
+             SUBSET   : 3 points (X)
+ 1   / 1:  0.0368
+ 2   / 2:  0.1471
+ 3   / 3:  0.3310
+ 
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+ 
+!!!! using dot(v1,v2,4) gives the correct results
+ 
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot(v1,v2,4)
+ 
+! It would be nice if this showed the right grid with NO t axis.
+show grid dp
+    GRID XTGRID
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    3 r   1                    3                   full
+ normal    Y
+ normal    Z
+ TAXIS_DC  T                  240 r   0                    59.75               full
+list dp
+             VARIABLE : DOT(V1,V2,4)
+             SUBSET   : 3 points (X)
+ 1   / 1:  0.0368
+ 2   / 2:  0.1471
+ 3   / 3:  0.3310
+ 
+! but, at least cancel axis taxis_dc is ok
+! Previously the "can axis taxis_dc" failed.
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_stride_size
+! err721_stride_size.jnl
+! SHOW DATA and RETURN=isize were
+! not updated with new size on a SET AXIS/STRIDE
+! *ACM* 11/29/2017 github issue 1843
+ 
+use coads_climatology
+set axis/stride=5 `sst,return=xaxis`
+ !-> set axis/stride=5 COADSX
+ 
+! Should show new size for x axis
+show grid sst
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ (AX###)   LONGITUDE           36mr   21E                  11E(371)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+ 
+! Restore axis, back to size 180
+cancel axis/stride `sst,return=xaxis`
+ !-> cancel axis/stride (AX###)
+show grid sst
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 180
+180
+ 
+! Irregular axis
+ 
+USE truemonth.nc
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 239
+239
+SET AXIS/STRIDE=12/OFFSET=0 `var,return=taxis`  ! every January
+ !-> SET AXIS/STRIDE=12/OFFSET=0 TRUEMONTH
+LIST var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 20 points (TIME)
+ 16-JAN-1950 /  1:  0.8459
+ 16-JAN-1951 /  2: -0.4792
+ 16-JAN-1952 /  3: -0.0086
+ 16-JAN-1953 /  4:  0.5030
+ 16-JAN-1954 /  5: -0.8601
+ 16-JAN-1955 /  6:  0.9996
+ 16-JAN-1956 /  7: -0.8863
+ 16-JAN-1957 /  8:  0.5404
+ 16-JAN-1958 /  9: -0.0625
+ 16-JAN-1959 / 10: -0.4313
+ 16-JAN-1960 / 11:  0.8159
+ 16-JAN-1961 / 12: -0.9952
+ 16-JAN-1962 / 13:  0.9170
+ 16-JAN-1963 / 14: -0.6068
+ 16-JAN-1964 / 15:  0.1432
+ 16-JAN-1965 / 16:  0.3660
+ 16-JAN-1966 / 17: -0.7727
+ 16-JAN-1967 / 18:  0.9840
+ 16-JAN-1968 / 19: -0.9463
+ 16-JAN-1969 / 20:  0.6618
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 20
+20
+ 
+can axis/stride `var,return=taxis`
+ !-> can axis/stride (AX###)
+sh grid var
+    GRID GRZ1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TRUEMONTH TIME               239 i   16-JAN-1950 12:00    16-NOV-1969 00:00   full
+SET AXIS/STRIDE=12/OFFSET=2 `var,return=taxis`  ! every March
+ !-> SET AXIS/STRIDE=12/OFFSET=2 TRUEMONTH
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+list var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 20 points (TIME)
+ 16-MAR-1950 /  1:  0.4061
+ 16-MAR-1951 /  2:  0.0901
+ 16-MAR-1952 /  3: -0.5718
+ 16-MAR-1953 /  4:  0.8988
+ 16-MAR-1954 /  5: -0.9985
+ 16-MAR-1955 /  6:  0.8456
+ 16-MAR-1956 /  7: -0.4700
+ 16-MAR-1957 /  8: -0.0191
+ 16-MAR-1958 /  9:  0.5034
+ 16-MAR-1959 / 10: -0.8603
+ 16-MAR-1960 / 11:  0.9999
+ 16-MAR-1961 / 12: -0.8814
+ 16-MAR-1962 / 13:  0.5400
+ 16-MAR-1963 / 14: -0.0620
+ 16-MAR-1964 / 15: -0.4407
+ 16-MAR-1965 / 16:  0.8219
+ 16-MAR-1966 / 17: -0.9952
+ 16-MAR-1967 / 18:  0.9168
+ 16-MAR-1968 / 19: -0.5985
+ 16-MAR-1969 / 20:  0.1328
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+ 
+*** Running ferret script: bn_tseries_modulo.jnl
+! bn_tseries_modulo.jnl
+!  9/2017 TSERIES aggregations
+!
+! If a time axis lies within year 0 or year 1 they are seen by ferret
+! as modulo. For a tseries aggregation, if the entire aggregated axis
+! is still modulo, then mark it as such, but otherwise it is not modulo.
+!
+! The time axes for these files both lie within year 0.
+! The aggregation has a modulo time axis.
+ 
+tseries heat_0a.nc, heat_0b.nc
+show grid total_ocean_sens_heat
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ SCALAR_AXIS LONGITUDE          1 r   0E                   0E                  full
+ normal    Y
+ normal    Z
+ TIME      TIME                 7mi   16-JAN 12:00         16-NOV 00:00        full
+ 
+! The file heat_01 lies in year 1 so the total TSERIES length is longer than a year.
+ 
+can dat/all
+tseries heat_0a.nc, heat_0b.nc, heat_01.nc
+show grid total_ocean_sens_heat
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ SCALAR_AXIS LONGITUDE          1 r   0E                   0E                  full
+ normal    Y
+ normal    Z
+ TIME      TIME                19 i   16-JAN-0000 12:00    16-DEC-0002 12:00   full
+ 
+! Here is the example reported by Russ Fiedler, 9/5/17, on the Ferret list.
+! A file in year 1 and a file in year 2 were previously made into a 24-month
+! axis which was marked as modulo.
+ 
+can dat/all
+tseries heat_00.nc, heat_01.nc
+show grid total_ocean_sens_heat
+    GRID GAT1
+ name       axis              # pts   start                end                 subset
+ SCALAR_AXIS LONGITUDE          1 r   0E                   0E                  full
+ normal    Y
+ normal    Z
+ TIME      TIME                24 i   16-JAN-0001 12:00    16-DEC-0002 12:00   full
+ 
+ 
+! What happens with files that are members of our descriptor examples?
+! (coads_clim.003 needed changing to have the same time-axis name)
+ 
+tseries coads_clim_irreg = coads_clim.001, coads_clim.003
+show grid sst
+    GRID GMU1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME1     TIME                 4mi   16-JAN 06:00         16-JUN 10:25        full
+list/x=180/y=0 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_clim_irreg
+             SUBSET   : 4 points (TIME)
+             LONGITUDE: 179E
+             LATITUDE : 1S
+                   179E   
+                    80
+ 16-JAN      / 1:  28.20
+ 15-FEB      / 2:  28.36
+ 16-MAY      / 3:  28.49
+ 16-JUN      / 4:  28.32
+ 
+! This descriptor file lists the same datasets, which each contain two
+! timesteps, but it lists S_START = S_END on the second set so it reads
+! just one timestep from coads_clim.003
+ 
+! The descriptor-file code does not mark the axis as modulo.
+! (Not changing this at this time.)
+ 
+can data/all
+use coads_clim_irreg.des
+show grid sst
+    GRID GJR1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME1     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56   full
+list/x=180/y=0 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             DATA SET : COAD
+             FILENAME : coads_clim_irreg.des
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 179E
+             LATITUDE : 1S
+                   179E   
+                    80
+ 16-JAN-1900 / 1:  28.20
+ 15-FEB-1900 / 2:  28.36
+ 17-MAY-1900 / 3:  28.49
+*** Running ferret script: bn_huge_axis.jnl
+! bn_huge_axis
+! 9/14/17  Dynamic coordinate storage
+! Defining extra-long coordinate axes, and save to a file
+! Use a dataset with extra-long coordinate axis.
+ 
+! Previously this would have given a program-limit-reached error
+let yy = if y[j=1:900000] eq 10 then 10.1 else  y[j=1:900000]
+define axis/y longyax = yy
+ 
+let/bad=0 var = y[gy=longyax]
+ 
+list/j=5:15 var
+             VARIABLE : Y[GY=LONGYAX]
+             SUBSET   : 11 points (Y)
+ 5     /  5:   5.00
+ 6     /  6:   6.00
+ 7     /  7:   7.00
+ 8     /  8:   8.00
+ 9     /  9:   9.00
+ 10.1  / 10:  10.10
+ 11    / 11:  11.00
+ 12    / 12:  12.00
+ 13    / 13:  13.00
+ 14    / 14:  14.00
+ 15    / 15:  15.00
+save/clobber/file=a.nc/outtype=int var
+ 
+! Previously issued a limit-on-storage-for-coordinates error
+can var/all
+can axis longyax
+ 
+use a
+show dat
+     currently SET data sets:
+    1> ./a.nc  (default)
+ name     title                             I         J         K         L
+ VAR      Y[GY=LONGYAX]                    ...       1:900000  ...       ...
+ 
+list/j=5:15 var
+             VARIABLE : Y[GY=LONGYAX]
+             FILENAME : a.nc
+             SUBSET   : 11 points (Y)
+ 5     /  5:   5.00
+ 6     /  6:   6.00
+ 7     /  7:   7.00
+ 8     /  8:   8.00
+ 9     /  9:   9.00
+ 10.1  / 10:  10.00
+ 11    / 11:  11.00
+ 12    / 12:  12.00
+ 13    / 13:  13.00
+ 14    / 14:  14.00
+ 15    / 15:  15.00
+list/j=899995:9000000 var
+             VARIABLE : Y[GY=LONGYAX]
+             FILENAME : a.nc
+             SUBSET   : 6 points (Y)
+ 899995   / 899995:  899995.
+ 899996   / 899996:  899996.
+ 899997   / 899997:  899997.
+ 899998   / 899998:  899998.
+ 899999   / 899999:  899999.
+ 900000   / 900000:  900000.
+ 
+! clean up. Remove our huge file
+cancel data/all
+sp rm a.nc
+*** Running ferret script: bn_save_as_global.jnl
+! bn_save_asglobal
+! 11/2017
+! Simple command to save a variable as a global attribute.
+! Works on an existing or a new file.
+ 
+! Write to a new file.  Gets the default global attributes.
+ 
+can mode upcase
+let my_extra_attribute = "Extra attribute: This file is just attributes to start with"
+save/asglobal/clobber/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+
+// global attributes:
+		:history = "FERRET V7.3  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: This file is just attributes to start with" ;
+}
+ 
+! Or write new attributes to a file that has data
+ 
+use coads_climatology
+save/clobber/file=a.nc sst[x=150:170,y=0:10]
+let my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes"
+save/asglobal/append/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.3  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+}
+ 
+! Create an attribute from a file variable
+ 
+use maize_1
+save/append/file=a.nc/j=4/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.3  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+		:MAIZE_YIELD = 0.05408529f, 0.1875f, -0.04314715f, 9.96921e+36f ;
+}
+ 
+! A second write of the same attribute overwrites the attribute values
+! (append here is saying dont start a new file)
+ 
+save/append/file=a.nc/j=5/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.3  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+		:MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+}
+ 
+! Allow for various /OUTTYPE as in any SAVE command
+let another = {1, 2, 3.1}
+save/append/file=a.nc/outtype=INT/asglobal another
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	COADSX = 10 ;
+	COADSY = 5 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	double COADSY(COADSY) ;
+		COADSY:units = "degrees_north" ;
+		COADSY:point_spacing = "even" ;
+		COADSY:axis = "Y" ;
+		COADSY:standard_name = "latitude" ;
+	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" ;
+		TIME:standard_name = "time" ;
+	float SST(TIME, 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" ;
+
+// global attributes:
+		:history = "FERRET V7.3  DD-MON-YY" ;
+		:Conventions = "CF-1.6" ;
+		:my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+		:MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+		:another = 1, 2, 3 ;
+}
+ 
+ 
+! Intentional errors
+set mode ignore
+set data 1
+ 
+! String attributes may only be single-valued
+let multistring = {"a", "b", "c", "", "e"}
+save/asglobal/append/file=a.nc multistring
+ 
+! Refuse to write multi-dimensioned attributes y-t
+save/append/asglobal/x=150/outtype=float/file=a.nc sst
+ 
+! Also arbitrarily refuse to write more than a list of 100 values.
+set mode ignore
+save/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+ 
+set mode /last upcase
 *** 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
@@ -105000,8 +105476,8 @@ exit/command
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
 FERRET_MEMORY = "31"
@@ -105017,8 +105493,8 @@ PROGRAM_NAME = "Ferret"
 PEAK_MEMORY = "0"
 SPAWN_OK = "1"
 SPAWN_STATUS = "0"
-GO_FILE = "./bn_startupfile.jnl"
-LAST_GO_FILE = "./bn_startupfile.jnl"
+GO_FILE = "./genjnls/bn_startupfile.jnl"
+LAST_GO_FILE = "./genjnls/bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = ".gif"
 PPL$TEKNME = "/dev/tt"
@@ -105081,7 +105557,7 @@ VP_YHI = "1"
       6D_LAB           SET
       FRUGAL           SET              30
      currently SET data sets:
-    1> ./gtbc011.cdf  (default)
+    1> ./data/gtbc011.cdf  (default)
  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
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index 19a64ec..c09d673 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.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -76,7 +76,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -113,7 +113,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -152,7 +152,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -187,7 +187,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -257,7 +257,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -314,7 +314,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -371,7 +371,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -426,7 +426,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -474,7 +474,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -568,7 +568,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -638,7 +638,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -689,7 +689,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -780,7 +780,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -807,7 +807,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -831,7 +831,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -858,14 +858,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_tab_comma_multivar.jnl
 *** Running ferret script: bn_element_functions.jnl
 *** Running ferret script: bn_long_revision_num.jnl
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 *** Running ferret script: bn_window_title.jnl
 *** Running ferret script: bn_last_error.jnl
 *** Running ferret script: bn_deg_min.jnl
@@ -901,7 +901,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -974,7 +974,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1018,7 +1018,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1060,7 +1060,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1168,7 +1168,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1209,7 +1209,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1232,7 +1232,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1258,7 +1258,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1278,7 +1278,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1299,7 +1299,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1342,7 +1342,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1382,7 +1382,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1420,7 +1420,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1449,7 +1449,7 @@ variables:
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1482,7 +1482,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1508,7 +1508,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1554,7 +1554,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1661,7 +1661,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1703,7 +1703,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1786,7 +1786,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1823,7 +1823,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1863,7 +1863,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1914,7 +1914,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1973,7 +1973,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2018,7 +2018,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2061,7 +2061,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2096,7 +2096,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2130,7 +2130,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -2160,7 +2160,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -2189,7 +2189,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2250,7 +2250,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2295,7 +2295,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_transforms.jnl
@@ -2336,7 +2336,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2366,7 +2366,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2396,7 +2396,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2449,7 +2449,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2491,7 +2491,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2509,7 +2509,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		: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.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2549,7 +2549,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2566,7 +2566,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2587,7 +2587,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2658,7 +2658,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_cdf_keepax.jnl
@@ -2687,7 +2687,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2714,7 +2714,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_key_label_minmax.jnl
@@ -2819,7 +2819,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2851,7 +2851,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2884,7 +2884,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_repeated_coords.jnl
@@ -2961,7 +2961,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2999,7 +2999,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3051,7 +3051,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -3065,7 +3065,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_list_clim_axes.jnl
@@ -3093,6 +3093,10 @@ variables:
 *** Running ferret script: bn_transp_choose.jnl
 *** Running ferret script: bn_iin_regrid.jnl
 *** Running ferret script: bn721_bug_fixes.jnl
+*** Running ferret script: bn722_bug_fixes.jnl
+*** Running ferret script: bn_tseries_modulo.jnl
+*** Running ferret script: bn_huge_axis.jnl
+*** Running ferret script: bn_save_as_global.jnl
 *** Running ferret script: bn_gif.jnl
 *** Running ferret script: bn_ps.jnl
 *** Running ferret script: bn_all_ef.jnl
@@ -3751,7 +3755,7 @@ variables:
 		tmonth:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
 
 // global attributes:
-		:history = "FERRET V7.21  DD-MON-YY" ;
+		:history = "FERRET V7.3  DD-MON-YY" ;
 		:Conventions = "CF-1.6" ;
 		:featureType = "Trajectory" ;
 		:decimation = "218 original number of obs. Piecewise decimated to 23 obs using tolerances: lon 1, lat 1, fco2_rec 4" ;
diff --git a/bench/test_results/forecast_actual.gif b/bench/test_results/forecast_actual.gif
index 346def1..7f1f0eb 100644
Binary files a/bench/test_results/forecast_actual.gif and b/bench/test_results/forecast_actual.gif differ
diff --git a/bench/test_results/forecast_diagview.gif b/bench/test_results/forecast_diagview.gif
index 15b03fd..78229c2 100644
Binary files a/bench/test_results/forecast_diagview.gif and b/bench/test_results/forecast_diagview.gif differ
diff --git a/bench/test_results/forecast_leadview.gif b/bench/test_results/forecast_leadview.gif
index 982f87d..07c8d66 100644
Binary files a/bench/test_results/forecast_leadview.gif and b/bench/test_results/forecast_leadview.gif differ
diff --git a/bench/test_results/gif_dashbug.gif b/bench/test_results/gif_dashbug.gif
index 21120f5..0b899c5 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/legend_1d_plots.gif b/bench/test_results/legend_1d_plots.gif
index bfed9a8..55d184e 100644
Binary files a/bench/test_results/legend_1d_plots.gif and b/bench/test_results/legend_1d_plots.gif differ
diff --git a/bench/test_results/levels_one_level.gif b/bench/test_results/levels_one_level.gif
index 4336537..bc1dbda 100644
Binary files a/bench/test_results/levels_one_level.gif and b/bench/test_results/levels_one_level.gif differ
diff --git a/bench/test_results/lon_lat_label_controls.gif b/bench/test_results/lon_lat_label_controls.gif
index 90e86d2..c64bb04 100644
Binary files a/bench/test_results/lon_lat_label_controls.gif and b/bench/test_results/lon_lat_label_controls.gif differ
diff --git a/bench/test_results/testbackground.gif b/bench/test_results/testbackground.gif
index ee9ab0e..a26f5c5 100644
Binary files a/bench/test_results/testbackground.gif and b/bench/test_results/testbackground.gif differ
diff --git a/bench/test_results/vs_lon_over.gif b/bench/test_results/vs_lon_over.gif
index 29caa80..ac8ddf6 100644
Binary files a/bench/test_results/vs_lon_over.gif and b/bench/test_results/vs_lon_over.gif differ
diff --git a/bench/NORM_CDF.DAT b/bench/unused/NORM_CDF.DAT
similarity index 100%
rename from bench/NORM_CDF.DAT
rename to bench/unused/NORM_CDF.DAT
diff --git a/bench/bench_add_9_visual.jnl b/bench/unused/bench_add_9_visual.jnl
similarity index 100%
rename from bench/bench_add_9_visual.jnl
rename to bench/unused/bench_add_9_visual.jnl
diff --git a/bench/bench_avet_visual.jnl b/bench/unused/bench_avet_visual.jnl
similarity index 100%
rename from bench/bench_avet_visual.jnl
rename to bench/unused/bench_avet_visual.jnl
diff --git a/bench/bench_extrema.jnl b/bench/unused/bench_extrema.jnl
similarity index 100%
rename from bench/bench_extrema.jnl
rename to bench/unused/bench_extrema.jnl
diff --git a/bench/bench_fft_visual.jnl b/bench/unused/bench_fft_visual.jnl
similarity index 100%
rename from bench/bench_fft_visual.jnl
rename to bench/unused/bench_fft_visual.jnl
diff --git a/bench/bench_gridding_visual.jnl b/bench/unused/bench_gridding_visual.jnl
similarity index 100%
rename from bench/bench_gridding_visual.jnl
rename to bench/unused/bench_gridding_visual.jnl
diff --git a/bench/bench_pass_thru_visual.jnl b/bench/unused/bench_pass_thru_visual.jnl
similarity index 100%
rename from bench/bench_pass_thru_visual.jnl
rename to bench/unused/bench_pass_thru_visual.jnl
diff --git a/bench/bench_sorti_visual.jnl b/bench/unused/bench_sorti_visual.jnl
similarity index 100%
rename from bench/bench_sorti_visual.jnl
rename to bench/unused/bench_sorti_visual.jnl
diff --git a/bench/bench_sortj_visual.jnl b/bench/unused/bench_sortj_visual.jnl
similarity index 100%
rename from bench/bench_sortj_visual.jnl
rename to bench/unused/bench_sortj_visual.jnl
diff --git a/bench/bench_sortk_visual.jnl b/bench/unused/bench_sortk_visual.jnl
similarity index 100%
rename from bench/bench_sortk_visual.jnl
rename to bench/unused/bench_sortk_visual.jnl
diff --git a/bench/bench_sortl_visual.jnl b/bench/unused/bench_sortl_visual.jnl
similarity index 100%
rename from bench/bench_sortl_visual.jnl
rename to bench/unused/bench_sortl_visual.jnl
diff --git a/bench/bench_storage_visual.jnl b/bench/unused/bench_storage_visual.jnl
similarity index 100%
rename from bench/bench_storage_visual.jnl
rename to bench/unused/bench_storage_visual.jnl
diff --git a/bench/bench_subtract_visual.jnl b/bench/unused/bench_subtract_visual.jnl
similarity index 100%
rename from bench/bench_subtract_visual.jnl
rename to bench/unused/bench_subtract_visual.jnl
diff --git a/bench/bn301_mem_mgmt.jnl b/bench/unused/bn301_mem_mgmt.jnl
similarity index 100%
rename from bench/bn301_mem_mgmt.jnl
rename to bench/unused/bn301_mem_mgmt.jnl
diff --git a/bench/bn_1d_gather.jnl b/bench/unused/bn_1d_gather.jnl
similarity index 100%
rename from bench/bn_1d_gather.jnl
rename to bench/unused/bn_1d_gather.jnl
diff --git a/bench/bn_all_dods.jnl b/bench/unused/bn_all_dods.jnl
similarity index 100%
rename from bench/bn_all_dods.jnl
rename to bench/unused/bn_all_dods.jnl
diff --git a/bench/bn_appende.jnl b/bench/unused/bn_appende.jnl
similarity index 100%
rename from bench/bn_appende.jnl
rename to bench/unused/bn_appende.jnl
diff --git a/bench/bn_ax_attrib.jnl b/bench/unused/bn_ax_attrib.jnl
similarity index 100%
rename from bench/bn_ax_attrib.jnl
rename to bench/unused/bn_ax_attrib.jnl
diff --git a/bench/bn_dods_strides.jnl b/bench/unused/bn_dods_strides.jnl
similarity index 100%
rename from bench/bn_dods_strides.jnl
rename to bench/unused/bn_dods_strides.jnl
diff --git a/bench/bn_encode_url.jnl b/bench/unused/bn_encode_url.jnl
similarity index 100%
rename from bench/bn_encode_url.jnl
rename to bench/unused/bn_encode_url.jnl
diff --git a/bench/bn_gather_4d_ave.jnl b/bench/unused/bn_gather_4d_ave.jnl
similarity index 100%
rename from bench/bn_gather_4d_ave.jnl
rename to bench/unused/bn_gather_4d_ave.jnl
diff --git a/bench/bn_gather_4d_din.jnl b/bench/unused/bn_gather_4d_din.jnl
similarity index 100%
rename from bench/bn_gather_4d_din.jnl
rename to bench/unused/bn_gather_4d_din.jnl
diff --git a/bench/bn_gather_4d_var.jnl b/bench/unused/bn_gather_4d_var.jnl
similarity index 100%
rename from bench/bn_gather_4d_var.jnl
rename to bench/unused/bn_gather_4d_var.jnl
diff --git a/bench/bn_keep_axnames.jnl b/bench/unused/bn_keep_axnames.jnl
similarity index 100%
rename from bench/bn_keep_axnames.jnl
rename to bench/unused/bn_keep_axnames.jnl
diff --git a/bench/bn_mn_fcns.jnl b/bench/unused/bn_mn_fcns.jnl
similarity index 100%
rename from bench/bn_mn_fcns.jnl
rename to bench/unused/bn_mn_fcns.jnl
diff --git a/bench/bn_nco_functions.jnl b/bench/unused/bn_nco_functions.jnl
similarity index 100%
rename from bench/bn_nco_functions.jnl
rename to bench/unused/bn_nco_functions.jnl
diff --git a/bench/bn_packed_coordinates.jnl b/bench/unused/bn_packed_coordinates.jnl
similarity index 100%
rename from bench/bn_packed_coordinates.jnl
rename to bench/unused/bn_packed_coordinates.jnl
diff --git a/bench/bn_ppl_errors.jnl b/bench/unused/bn_ppl_errors.jnl
similarity index 100%
rename from bench/bn_ppl_errors.jnl
rename to bench/unused/bn_ppl_errors.jnl
diff --git a/bench/bn_samplexz.jnl b/bench/unused/bn_samplexz.jnl
similarity index 100%
rename from bench/bn_samplexz.jnl
rename to bench/unused/bn_samplexz.jnl
diff --git a/bench/bn_sampleyz.jnl b/bench/unused/bn_sampleyz.jnl
similarity index 100%
rename from bench/bn_sampleyz.jnl
rename to bench/unused/bn_sampleyz.jnl
diff --git a/bench/bn_sho_att_longnames.jnl b/bench/unused/bn_sho_att_longnames.jnl
similarity index 100%
rename from bench/bn_sho_att_longnames.jnl
rename to bench/unused/bn_sho_att_longnames.jnl
diff --git a/bench/bn_warn_subspan.jnl b/bench/unused/bn_warn_subspan.jnl
similarity index 100%
rename from bench/bn_warn_subspan.jnl
rename to bench/unused/bn_warn_subspan.jnl
diff --git a/bench/bn_zaxr_fcns.jnl b/bench/unused/bn_zaxr_fcns.jnl
similarity index 100%
rename from bench/bn_zaxr_fcns.jnl
rename to bench/unused/bn_zaxr_fcns.jnl
diff --git a/bench/err491_cdf_childax.jnl b/bench/unused/err491_cdf_childax.jnl
similarity index 100%
rename from bench/err491_cdf_childax.jnl
rename to bench/unused/err491_cdf_childax.jnl
diff --git a/bench/err491_days1900.jnl b/bench/unused/err491_days1900.jnl
similarity index 100%
rename from bench/err491_days1900.jnl
rename to bench/unused/err491_days1900.jnl
diff --git a/bench/err491_gt_syntax.jnl b/bench/unused/err491_gt_syntax.jnl
similarity index 100%
rename from bench/err491_gt_syntax.jnl
rename to bench/unused/err491_gt_syntax.jnl
diff --git a/bench/err491_interp.jnl b/bench/unused/err491_interp.jnl
similarity index 100%
rename from bench/err491_interp.jnl
rename to bench/unused/err491_interp.jnl
diff --git a/bench/err491_mc.jnl b/bench/unused/err491_mc.jnl
similarity index 100%
rename from bench/err491_mc.jnl
rename to bench/unused/err491_mc.jnl
diff --git a/bench/err491_reshape_limits.jnl b/bench/unused/err491_reshape_limits.jnl
similarity index 100%
rename from bench/err491_reshape_limits.jnl
rename to bench/unused/err491_reshape_limits.jnl
diff --git a/bench/err491_shade_lev_roundoff.jnl b/bench/unused/err491_shade_lev_roundoff.jnl
similarity index 100%
rename from bench/err491_shade_lev_roundoff.jnl
rename to bench/unused/err491_shade_lev_roundoff.jnl
diff --git a/bench/err491_zaxreplace.jnl b/bench/unused/err491_zaxreplace.jnl
similarity index 100%
rename from bench/err491_zaxreplace.jnl
rename to bench/unused/err491_zaxreplace.jnl
diff --git a/bench/err500_logcontour.jnl b/bench/unused/err500_logcontour.jnl
similarity index 100%
rename from bench/err500_logcontour.jnl
rename to bench/unused/err500_logcontour.jnl
diff --git a/bench/err580_def_t_norange.jnl b/bench/unused/err580_def_t_norange.jnl
similarity index 100%
rename from bench/err580_def_t_norange.jnl
rename to bench/unused/err580_def_t_norange.jnl
diff --git a/bench/err684_cancel_att.jnl b/bench/unused/err684_cancel_att.jnl
similarity index 100%
rename from bench/err684_cancel_att.jnl
rename to bench/unused/err684_cancel_att.jnl
diff --git a/bench/err693_check_edges.jnl b/bench/unused/err693_check_edges.jnl
similarity index 100%
rename from bench/err693_check_edges.jnl
rename to bench/unused/err693_check_edges.jnl
diff --git a/bench/err69_if_then_split.jnl b/bench/unused/err69_if_then_split.jnl
similarity index 100%
rename from bench/err69_if_then_split.jnl
rename to bench/unused/err69_if_then_split.jnl
diff --git a/bench/err69_repeat_in_if.jnl b/bench/unused/err69_repeat_in_if.jnl
similarity index 100%
rename from bench/err69_repeat_in_if.jnl
rename to bench/unused/err69_repeat_in_if.jnl
diff --git a/bench/objective.jnl b/bench/unused/objective.jnl
similarity index 100%
rename from bench/objective.jnl
rename to bench/unused/objective.jnl
diff --git a/bench/outside_the_lines.jnl b/bench/unused/outside_the_lines.jnl
similarity index 100%
rename from bench/outside_the_lines.jnl
rename to bench/unused/outside_the_lines.jnl
diff --git a/bench/run_all.sh b/bench/unused/run_all.sh
similarity index 100%
rename from bench/run_all.sh
rename to bench/unused/run_all.sh
diff --git a/bench/test b/bench/unused/test
similarity index 100%
rename from bench/test
rename to bench/unused/test
diff --git a/bench/bn491_bug_fixes.jnl b/bench/v4jnls/bn491_bug_fixes.jnl
similarity index 100%
rename from bench/bn491_bug_fixes.jnl
rename to bench/v4jnls/bn491_bug_fixes.jnl
diff --git a/bench/bn_axis_limits.jnl b/bench/v4jnls/bn_axis_limits.jnl
similarity index 100%
rename from bench/bn_axis_limits.jnl
rename to bench/v4jnls/bn_axis_limits.jnl
diff --git a/bench/bn_axis_limits.sub1 b/bench/v4jnls/bn_axis_limits.sub1
similarity index 100%
rename from bench/bn_axis_limits.sub1
rename to bench/v4jnls/bn_axis_limits.sub1
diff --git a/bench/bn_axis_limits.sub2 b/bench/v4jnls/bn_axis_limits.sub2
similarity index 100%
rename from bench/bn_axis_limits.sub2
rename to bench/v4jnls/bn_axis_limits.sub2
diff --git a/bench/bn_cdf.jnl b/bench/v4jnls/bn_cdf.jnl
similarity index 100%
rename from bench/bn_cdf.jnl
rename to bench/v4jnls/bn_cdf.jnl
diff --git a/bench/bn_cdf.sub1 b/bench/v4jnls/bn_cdf.sub1
similarity index 100%
rename from bench/bn_cdf.sub1
rename to bench/v4jnls/bn_cdf.sub1
diff --git a/bench/bn_cdf.sub2 b/bench/v4jnls/bn_cdf.sub2
similarity index 100%
rename from bench/bn_cdf.sub2
rename to bench/v4jnls/bn_cdf.sub2
diff --git a/bench/bn_cdf.sub3 b/bench/v4jnls/bn_cdf.sub3
similarity index 100%
rename from bench/bn_cdf.sub3
rename to bench/v4jnls/bn_cdf.sub3
diff --git a/bench/bn_cdf.sub4 b/bench/v4jnls/bn_cdf.sub4
similarity index 100%
rename from bench/bn_cdf.sub4
rename to bench/v4jnls/bn_cdf.sub4
diff --git a/bench/bn_cdf_reversed.sub b/bench/v4jnls/bn_cdf_reversed.sub
similarity index 100%
rename from bench/bn_cdf_reversed.sub
rename to bench/v4jnls/bn_cdf_reversed.sub
diff --git a/bench/bn_comma_delimited.jnl b/bench/v4jnls/bn_comma_delimited.jnl
similarity index 100%
rename from bench/bn_comma_delimited.jnl
rename to bench/v4jnls/bn_comma_delimited.jnl
diff --git a/bench/bn_comma_delimited.sub b/bench/v4jnls/bn_comma_delimited.sub
similarity index 100%
rename from bench/bn_comma_delimited.sub
rename to bench/v4jnls/bn_comma_delimited.sub
diff --git a/bench/bn_compress.jnl b/bench/v4jnls/bn_compress.jnl
similarity index 100%
rename from bench/bn_compress.jnl
rename to bench/v4jnls/bn_compress.jnl
diff --git a/bench/bn_compress.sub_v b/bench/v4jnls/bn_compress.sub_v
similarity index 100%
rename from bench/bn_compress.sub_v
rename to bench/v4jnls/bn_compress.sub_v
diff --git a/bench/bn_curv.jnl b/bench/v4jnls/bn_curv.jnl
similarity index 100%
rename from bench/bn_curv.jnl
rename to bench/v4jnls/bn_curv.jnl
diff --git a/bench/bn_dollar.jnl b/bench/v4jnls/bn_dollar.jnl
similarity index 100%
rename from bench/bn_dollar.jnl
rename to bench/v4jnls/bn_dollar.jnl
diff --git a/bench/bn_dollar.sub b/bench/v4jnls/bn_dollar.sub
similarity index 100%
rename from bench/bn_dollar.sub
rename to bench/v4jnls/bn_dollar.sub
diff --git a/bench/bn_dynamic_grids.jnl b/bench/v4jnls/bn_dynamic_grids.jnl
similarity index 100%
rename from bench/bn_dynamic_grids.jnl
rename to bench/v4jnls/bn_dynamic_grids.jnl
diff --git a/bench/bn_expressions.jnl b/bench/v4jnls/bn_expressions.jnl
similarity index 100%
rename from bench/bn_expressions.jnl
rename to bench/v4jnls/bn_expressions.jnl
diff --git a/bench/bn_ez.jnl b/bench/v4jnls/bn_ez.jnl
similarity index 100%
rename from bench/bn_ez.jnl
rename to bench/v4jnls/bn_ez.jnl
diff --git a/bench/bn_ez_order.jnl b/bench/v4jnls/bn_ez_order.jnl
similarity index 100%
rename from bench/bn_ez_order.jnl
rename to bench/v4jnls/bn_ez_order.jnl
diff --git a/bench/bn_gc_functions.jnl b/bench/v4jnls/bn_gc_functions.jnl
similarity index 100%
rename from bench/bn_gc_functions.jnl
rename to bench/v4jnls/bn_gc_functions.jnl
diff --git a/bench/bn_geometry.jnl b/bench/v4jnls/bn_geometry.jnl
similarity index 100%
rename from bench/bn_geometry.jnl
rename to bench/v4jnls/bn_geometry.jnl
diff --git a/bench/bn_geometry.sub b/bench/v4jnls/bn_geometry.sub
similarity index 100%
rename from bench/bn_geometry.sub
rename to bench/v4jnls/bn_geometry.sub
diff --git a/bench/bn_grave.jnl b/bench/v4jnls/bn_grave.jnl
similarity index 100%
rename from bench/bn_grave.jnl
rename to bench/v4jnls/bn_grave.jnl
diff --git a/bench/bn_if.jnl b/bench/v4jnls/bn_if.jnl
similarity index 100%
rename from bench/bn_if.jnl
rename to bench/v4jnls/bn_if.jnl
diff --git a/bench/bn_if.sub b/bench/v4jnls/bn_if.sub
similarity index 100%
rename from bench/bn_if.sub
rename to bench/v4jnls/bn_if.sub
diff --git a/bench/bn_in_plane.jnl b/bench/v4jnls/bn_in_plane.jnl
similarity index 100%
rename from bench/bn_in_plane.jnl
rename to bench/v4jnls/bn_in_plane.jnl
diff --git a/bench/bn_in_plane.sub b/bench/v4jnls/bn_in_plane.sub
similarity index 100%
rename from bench/bn_in_plane.sub
rename to bench/v4jnls/bn_in_plane.sub
diff --git a/bench/bn_interpolate.jnl b/bench/v4jnls/bn_interpolate.jnl
similarity index 100%
rename from bench/bn_interpolate.jnl
rename to bench/v4jnls/bn_interpolate.jnl
diff --git a/bench/bn_interpolate.sub b/bench/v4jnls/bn_interpolate.sub
similarity index 100%
rename from bench/bn_interpolate.sub
rename to bench/v4jnls/bn_interpolate.sub
diff --git a/bench/bn_letd.jnl b/bench/v4jnls/bn_letd.jnl
similarity index 100%
rename from bench/bn_letd.jnl
rename to bench/v4jnls/bn_letd.jnl
diff --git a/bench/bn_mc.jnl b/bench/v4jnls/bn_mc.jnl
similarity index 100%
rename from bench/bn_mc.jnl
rename to bench/v4jnls/bn_mc.jnl
diff --git a/bench/bn_movie.jnl b/bench/v4jnls/bn_movie.jnl
similarity index 100%
rename from bench/bn_movie.jnl
rename to bench/v4jnls/bn_movie.jnl
diff --git a/bench/bn_mp_zoo.jnl b/bench/v4jnls/bn_mp_zoo.jnl
similarity index 100%
rename from bench/bn_mp_zoo.jnl
rename to bench/v4jnls/bn_mp_zoo.jnl
diff --git a/bench/bn_negative_t.jnl b/bench/v4jnls/bn_negative_t.jnl
similarity index 100%
rename from bench/bn_negative_t.jnl
rename to bench/v4jnls/bn_negative_t.jnl
diff --git a/bench/bn_negative_t.sub b/bench/v4jnls/bn_negative_t.sub
similarity index 100%
rename from bench/bn_negative_t.sub
rename to bench/v4jnls/bn_negative_t.sub
diff --git a/bench/bn_output.jnl b/bench/v4jnls/bn_output.jnl
similarity index 100%
rename from bench/bn_output.jnl
rename to bench/v4jnls/bn_output.jnl
diff --git a/bench/bn_output.sub b/bench/v4jnls/bn_output.sub
similarity index 100%
rename from bench/bn_output.sub
rename to bench/v4jnls/bn_output.sub
diff --git a/bench/bn_plot.jnl b/bench/v4jnls/bn_plot.jnl
similarity index 100%
rename from bench/bn_plot.jnl
rename to bench/v4jnls/bn_plot.jnl
diff --git a/bench/bn_regrid.jnl b/bench/v4jnls/bn_regrid.jnl
similarity index 100%
rename from bench/bn_regrid.jnl
rename to bench/v4jnls/bn_regrid.jnl
diff --git a/bench/bn_regrid.sub b/bench/v4jnls/bn_regrid.sub
similarity index 100%
rename from bench/bn_regrid.sub
rename to bench/v4jnls/bn_regrid.sub
diff --git a/bench/bn_regrid_transforms.jnl b/bench/v4jnls/bn_regrid_transforms.jnl
similarity index 100%
rename from bench/bn_regrid_transforms.jnl
rename to bench/v4jnls/bn_regrid_transforms.jnl
diff --git a/bench/bn_stream.jnl b/bench/v4jnls/bn_stream.jnl
similarity index 100%
rename from bench/bn_stream.jnl
rename to bench/v4jnls/bn_stream.jnl
diff --git a/bench/bn_symbols.jnl b/bench/v4jnls/bn_symbols.jnl
similarity index 100%
rename from bench/bn_symbols.jnl
rename to bench/v4jnls/bn_symbols.jnl
diff --git a/bench/bn_syntax.jnl b/bench/v4jnls/bn_syntax.jnl
similarity index 99%
rename from bench/bn_syntax.jnl
rename to bench/v4jnls/bn_syntax.jnl
index 35fd9ad..c785077 100644
--- a/bench/bn_syntax.jnl
+++ b/bench/v4jnls/bn_syntax.jnl
@@ -18,7 +18,7 @@ USE gtbc011
 SHOW DATA/BRIEF
 SHOW DATA
 SHOW DATA/VARIABLES
-SHOW DATA/FILES
+SHOW DATA/MEMBERS
 SHOW DATA/FULL
 CANCEL DATA 1
 SHOW DATA
diff --git a/bench/bn_user.jnl b/bench/v4jnls/bn_user.jnl
similarity index 100%
rename from bench/bn_user.jnl
rename to bench/v4jnls/bn_user.jnl
diff --git a/bench/bn_xact_regrid.jnl b/bench/v4jnls/bn_xact_regrid.jnl
similarity index 100%
rename from bench/bn_xact_regrid.jnl
rename to bench/v4jnls/bn_xact_regrid.jnl
diff --git a/bench/bn_xact_regrid.sub b/bench/v4jnls/bn_xact_regrid.sub
similarity index 100%
rename from bench/bn_xact_regrid.sub
rename to bench/v4jnls/bn_xact_regrid.sub
diff --git a/bench/err490_cdf_childax.jnl b/bench/v4jnls/err490_cdf_childax.jnl
similarity index 100%
rename from bench/err490_cdf_childax.jnl
rename to bench/v4jnls/err490_cdf_childax.jnl
diff --git a/bench/err490_command_parser.jnl b/bench/v4jnls/err490_command_parser.jnl
similarity index 100%
rename from bench/err490_command_parser.jnl
rename to bench/v4jnls/err490_command_parser.jnl
diff --git a/bench/err490_fixed_var_size.jnl b/bench/v4jnls/err490_fixed_var_size.jnl
similarity index 100%
rename from bench/err490_fixed_var_size.jnl
rename to bench/v4jnls/err490_fixed_var_size.jnl
diff --git a/bench/err490_l_ave.jnl b/bench/v4jnls/err490_l_ave.jnl
similarity index 100%
rename from bench/err490_l_ave.jnl
rename to bench/v4jnls/err490_l_ave.jnl
diff --git a/bench/err490_neg_time_show_grid.jnl b/bench/v4jnls/err490_neg_time_show_grid.jnl
similarity index 100%
rename from bench/err490_neg_time_show_grid.jnl
rename to bench/v4jnls/err490_neg_time_show_grid.jnl
diff --git a/bench/err490_repeat_first_echo.jnl b/bench/v4jnls/err490_repeat_first_echo.jnl
similarity index 100%
rename from bench/err490_repeat_first_echo.jnl
rename to bench/v4jnls/err490_repeat_first_echo.jnl
diff --git a/bench/err490_tilde.jnl b/bench/v4jnls/err490_tilde.jnl
similarity index 100%
rename from bench/err490_tilde.jnl
rename to bench/v4jnls/err490_tilde.jnl
diff --git a/bench/err491_RESHAPE_ctx.jnl b/bench/v4jnls/err491_RESHAPE_ctx.jnl
similarity index 100%
rename from bench/err491_RESHAPE_ctx.jnl
rename to bench/v4jnls/err491_RESHAPE_ctx.jnl
diff --git a/bench/err491_asn.jnl b/bench/v4jnls/err491_asn.jnl
similarity index 100%
rename from bench/err491_asn.jnl
rename to bench/v4jnls/err491_asn.jnl
diff --git a/bench/err491_attrib_dp.jnl b/bench/v4jnls/err491_attrib_dp.jnl
similarity index 100%
rename from bench/err491_attrib_dp.jnl
rename to bench/v4jnls/err491_attrib_dp.jnl
diff --git a/bench/err491_delete_child_var.jnl b/bench/v4jnls/err491_delete_child_var.jnl
similarity index 100%
rename from bench/err491_delete_child_var.jnl
rename to bench/v4jnls/err491_delete_child_var.jnl
diff --git a/bench/err491_dp_time_write.jnl b/bench/v4jnls/err491_dp_time_write.jnl
similarity index 100%
rename from bench/err491_dp_time_write.jnl
rename to bench/v4jnls/err491_dp_time_write.jnl
diff --git a/bench/err491_explicit_limits.jnl b/bench/v4jnls/err491_explicit_limits.jnl
similarity index 100%
rename from bench/err491_explicit_limits.jnl
rename to bench/v4jnls/err491_explicit_limits.jnl
diff --git a/bench/err491_gmax.jnl b/bench/v4jnls/err491_gmax.jnl
similarity index 100%
rename from bench/err491_gmax.jnl
rename to bench/v4jnls/err491_gmax.jnl
diff --git a/bench/err491_grid_from_name.jnl b/bench/v4jnls/err491_grid_from_name.jnl
similarity index 100%
rename from bench/err491_grid_from_name.jnl
rename to bench/v4jnls/err491_grid_from_name.jnl
diff --git a/bench/err491_let_d.jnl b/bench/v4jnls/err491_let_d.jnl
similarity index 100%
rename from bench/err491_let_d.jnl
rename to bench/v4jnls/err491_let_d.jnl
diff --git a/bench/err491_long_gif_name.jnl b/bench/v4jnls/err491_long_gif_name.jnl
similarity index 100%
rename from bench/err491_long_gif_name.jnl
rename to bench/v4jnls/err491_long_gif_name.jnl
diff --git a/bench/err491_sh_var_templates.jnl b/bench/v4jnls/err491_sh_var_templates.jnl
similarity index 100%
rename from bench/err491_sh_var_templates.jnl
rename to bench/v4jnls/err491_sh_var_templates.jnl
diff --git a/bench/err491_single_char_replace.jnl b/bench/v4jnls/err491_single_char_replace.jnl
similarity index 100%
rename from bench/err491_single_char_replace.jnl
rename to bench/v4jnls/err491_single_char_replace.jnl
diff --git a/bench/err491_spawn_quotes.jnl b/bench/v4jnls/err491_spawn_quotes.jnl
similarity index 100%
rename from bench/err491_spawn_quotes.jnl
rename to bench/v4jnls/err491_spawn_quotes.jnl
diff --git a/bench/err491_time_regridding.jnl b/bench/v4jnls/err491_time_regridding.jnl
similarity index 100%
rename from bench/err491_time_regridding.jnl
rename to bench/v4jnls/err491_time_regridding.jnl
diff --git a/bench/err491_unknown_function.jnl b/bench/v4jnls/err491_unknown_function.jnl
similarity index 100%
rename from bench/err491_unknown_function.jnl
rename to bench/v4jnls/err491_unknown_function.jnl
diff --git a/bench/bench_compress.jnl b/bench/v5jnls/bench_compress.jnl
similarity index 100%
rename from bench/bench_compress.jnl
rename to bench/v5jnls/bench_compress.jnl
diff --git a/bench/bench_compress_by.jnl b/bench/v5jnls/bench_compress_by.jnl
similarity index 100%
rename from bench/bench_compress_by.jnl
rename to bench/v5jnls/bench_compress_by.jnl
diff --git a/bench/bench_eof.jnl b/bench/v5jnls/bench_eof.jnl
similarity index 95%
rename from bench/bench_eof.jnl
rename to bench/v5jnls/bench_eof.jnl
index d0212ed..145dd6f 100644
--- a/bench/bench_eof.jnl
+++ b/bench/v5jnls/bench_eof.jnl
@@ -5,7 +5,6 @@
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
 
-
 ! Test the bail-out from eof_space, eof_stat, eof_tfunc
 set mode ignore
 
@@ -33,7 +32,7 @@ list/i=1:3/j=1:3 eofstat
 LET eoftime = eofsvd_tfunc(SST[X=27W:23W,Y=1S:3N])
 list/i=1:2 eoftime
 
-
+! The functions need updating for double precision Ferret
 exit/script
 ! -----------------------------------------------
 ! previous commands that called eof_space, eof_stat, eof_tfunc
diff --git a/bench/bench_fft.jnl b/bench/v5jnls/bench_fft.jnl
similarity index 100%
rename from bench/bench_fft.jnl
rename to bench/v5jnls/bench_fft.jnl
diff --git a/bench/bench_gridding.jnl b/bench/v5jnls/bench_gridding.jnl
similarity index 100%
rename from bench/bench_gridding.jnl
rename to bench/v5jnls/bench_gridding.jnl
diff --git a/bench/bench_internal_string_functions.jnl b/bench/v5jnls/bench_internal_string_functions.jnl
similarity index 100%
rename from bench/bench_internal_string_functions.jnl
rename to bench/v5jnls/bench_internal_string_functions.jnl
diff --git a/bench/bench_samplet_date.jnl b/bench/v5jnls/bench_samplet_date.jnl
similarity index 100%
rename from bench/bench_samplet_date.jnl
rename to bench/v5jnls/bench_samplet_date.jnl
diff --git a/bench/bench_samplexy.jnl b/bench/v5jnls/bench_samplexy.jnl
similarity index 100%
rename from bench/bench_samplexy.jnl
rename to bench/v5jnls/bench_samplexy.jnl
diff --git a/bench/bench_sort.jnl b/bench/v5jnls/bench_sort.jnl
similarity index 100%
rename from bench/bench_sort.jnl
rename to bench/v5jnls/bench_sort.jnl
diff --git a/bench/bench_sorti.jnl b/bench/v5jnls/bench_sorti.jnl
similarity index 100%
rename from bench/bench_sorti.jnl
rename to bench/v5jnls/bench_sorti.jnl
diff --git a/bench/bench_sortj.jnl b/bench/v5jnls/bench_sortj.jnl
similarity index 100%
rename from bench/bench_sortj.jnl
rename to bench/v5jnls/bench_sortj.jnl
diff --git a/bench/bench_sortk.jnl b/bench/v5jnls/bench_sortk.jnl
similarity index 100%
rename from bench/bench_sortk.jnl
rename to bench/v5jnls/bench_sortk.jnl
diff --git a/bench/bench_sortl.jnl b/bench/v5jnls/bench_sortl.jnl
similarity index 100%
rename from bench/bench_sortl.jnl
rename to bench/v5jnls/bench_sortl.jnl
diff --git a/bench/bn500_bug_fixes.jnl b/bench/v5jnls/bn500_bug_fixes.jnl
similarity index 100%
rename from bench/bn500_bug_fixes.jnl
rename to bench/v5jnls/bn500_bug_fixes.jnl
diff --git a/bench/bn541_bug_fixes.jnl b/bench/v5jnls/bn541_bug_fixes.jnl
similarity index 100%
rename from bench/bn541_bug_fixes.jnl
rename to bench/v5jnls/bn541_bug_fixes.jnl
diff --git a/bench/bn542_bug_fixes.jnl b/bench/v5jnls/bn542_bug_fixes.jnl
similarity index 100%
rename from bench/bn542_bug_fixes.jnl
rename to bench/v5jnls/bn542_bug_fixes.jnl
diff --git a/bench/bn550_bug_fixes.jnl b/bench/v5jnls/bn550_bug_fixes.jnl
similarity index 100%
rename from bench/bn550_bug_fixes.jnl
rename to bench/v5jnls/bn550_bug_fixes.jnl
diff --git a/bench/bn551_bug_fixes.jnl b/bench/v5jnls/bn551_bug_fixes.jnl
similarity index 100%
rename from bench/bn551_bug_fixes.jnl
rename to bench/v5jnls/bn551_bug_fixes.jnl
diff --git a/bench/bn552_bug_fixes.jnl b/bench/v5jnls/bn552_bug_fixes.jnl
similarity index 100%
rename from bench/bn552_bug_fixes.jnl
rename to bench/v5jnls/bn552_bug_fixes.jnl
diff --git a/bench/bn553_bug_fixes.jnl b/bench/v5jnls/bn553_bug_fixes.jnl
similarity index 100%
rename from bench/bn553_bug_fixes.jnl
rename to bench/v5jnls/bn553_bug_fixes.jnl
diff --git a/bench/bn554_bug_fixes.jnl b/bench/v5jnls/bn554_bug_fixes.jnl
similarity index 100%
rename from bench/bn554_bug_fixes.jnl
rename to bench/v5jnls/bn554_bug_fixes.jnl
diff --git a/bench/bn570_bug_fixes.jnl b/bench/v5jnls/bn570_bug_fixes.jnl
similarity index 100%
rename from bench/bn570_bug_fixes.jnl
rename to bench/v5jnls/bn570_bug_fixes.jnl
diff --git a/bench/bn580_bug_fixes.jnl b/bench/v5jnls/bn580_bug_fixes.jnl
similarity index 100%
rename from bench/bn580_bug_fixes.jnl
rename to bench/v5jnls/bn580_bug_fixes.jnl
diff --git a/bench/bn581_bug_fixes.jnl b/bench/v5jnls/bn581_bug_fixes.jnl
similarity index 100%
rename from bench/bn581_bug_fixes.jnl
rename to bench/v5jnls/bn581_bug_fixes.jnl
diff --git a/bench/bn_abstract_axis_names.jnl b/bench/v5jnls/bn_abstract_axis_names.jnl
similarity index 100%
rename from bench/bn_abstract_axis_names.jnl
rename to bench/v5jnls/bn_abstract_axis_names.jnl
diff --git a/bench/bn_all_leap.jnl b/bench/v5jnls/bn_all_leap.jnl
similarity index 100%
rename from bench/bn_all_leap.jnl
rename to bench/v5jnls/bn_all_leap.jnl
diff --git a/bench/bn_axcontrol.jnl b/bench/v5jnls/bn_axcontrol.jnl
similarity index 100%
rename from bench/bn_axcontrol.jnl
rename to bench/v5jnls/bn_axcontrol.jnl
diff --git a/bench/bn_axis_viewports.jnl b/bench/v5jnls/bn_axis_viewports.jnl
similarity index 100%
rename from bench/bn_axis_viewports.jnl
rename to bench/v5jnls/bn_axis_viewports.jnl
diff --git a/bench/bn_bounds.jnl b/bench/v5jnls/bn_bounds.jnl
similarity index 100%
rename from bench/bn_bounds.jnl
rename to bench/v5jnls/bn_bounds.jnl
diff --git a/bench/bn_cache_hits.jnl b/bench/v5jnls/bn_cache_hits.jnl
similarity index 100%
rename from bench/bn_cache_hits.jnl
rename to bench/v5jnls/bn_cache_hits.jnl
diff --git a/bench/bn_cache_hits.sub b/bench/v5jnls/bn_cache_hits.sub
similarity index 100%
rename from bench/bn_cache_hits.sub
rename to bench/v5jnls/bn_cache_hits.sub
diff --git a/bench/bn_cache_hits_gcfcn.sub b/bench/v5jnls/bn_cache_hits_gcfcn.sub
similarity index 100%
rename from bench/bn_cache_hits_gcfcn.sub
rename to bench/v5jnls/bn_cache_hits_gcfcn.sub
diff --git a/bench/bn_calendar.jnl b/bench/v5jnls/bn_calendar.jnl
similarity index 100%
rename from bench/bn_calendar.jnl
rename to bench/v5jnls/bn_calendar.jnl
diff --git a/bench/bn_cancel_axes.jnl b/bench/v5jnls/bn_cancel_axes.jnl
similarity index 100%
rename from bench/bn_cancel_axes.jnl
rename to bench/v5jnls/bn_cancel_axes.jnl
diff --git a/bench/bn_cancel_axes_1.sub b/bench/v5jnls/bn_cancel_axes_1.sub
similarity index 100%
rename from bench/bn_cancel_axes_1.sub
rename to bench/v5jnls/bn_cancel_axes_1.sub
diff --git a/bench/bn_cancel_axes_2.sub b/bench/v5jnls/bn_cancel_axes_2.sub
similarity index 100%
rename from bench/bn_cancel_axes_2.sub
rename to bench/v5jnls/bn_cancel_axes_2.sub
diff --git a/bench/bn_curv_mod.jnl b/bench/v5jnls/bn_curv_mod.jnl
similarity index 100%
rename from bench/bn_curv_mod.jnl
rename to bench/v5jnls/bn_curv_mod.jnl
diff --git a/bench/bn_dash_dot.jnl b/bench/v5jnls/bn_dash_dot.jnl
similarity index 100%
rename from bench/bn_dash_dot.jnl
rename to bench/v5jnls/bn_dash_dot.jnl
diff --git a/bench/bn_define_axes.jnl b/bench/v5jnls/bn_define_axes.jnl
similarity index 100%
rename from bench/bn_define_axes.jnl
rename to bench/v5jnls/bn_define_axes.jnl
diff --git a/bench/bn_delimited_read.jnl b/bench/v5jnls/bn_delimited_read.jnl
similarity index 96%
rename from bench/bn_delimited_read.jnl
rename to bench/v5jnls/bn_delimited_read.jnl
index 54a1563..f5c1ebc 100644
--- a/bench/bn_delimited_read.jnl
+++ b/bench/v5jnls/bn_delimited_read.jnl
@@ -4,7 +4,7 @@
 ! test delimiited (spreadsheet) reads in Ferret
 
 ! look at the file
-spawn cat bn_delimited_read_1.dat
+spawn cat data/bn_delimited_read_1.dat
 
 ! try the file as-is:  record 1 contains 5 column headings (text)
 ! so V1 through V5 analyze to be text
@@ -39,7 +39,7 @@ file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
 list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
 
 ! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
+spawn head -1 data/bn_delimited_read_1.dat
 define axis/x=1:1:1 x1
 define grid/x=x1 g1
 columns/grid=g1 bn_delimited_read_1.dat
@@ -63,7 +63,7 @@ list v1,v2
 
 ! ==========
 ! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
+spawn cat data/bn_delimited_read_date_time.dat
 
 ! try the file as-is
 ! Note that record 3 has syntax errors in the first 4 fields
@@ -97,7 +97,7 @@ show data 2
 file/form=delim/delim="/" bn_delimited_read_date_time.dat
 list V1,V2,V3,V4
 ! ---
-sp cat bn_delimited_read_date_time.dat
+sp cat data/bn_delimited_read_date_time.dat
 ! ---
 file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
 list V1,V2,V3,V4,v5,v6,v7,v8
diff --git a/bench/bn_dots.jnl b/bench/v5jnls/bn_dots.jnl
similarity index 100%
rename from bench/bn_dots.jnl
rename to bench/v5jnls/bn_dots.jnl
diff --git a/bench/bn_ef_bench_extrema.jnl b/bench/v5jnls/bn_ef_bench_extrema.jnl
similarity index 100%
rename from bench/bn_ef_bench_extrema.jnl
rename to bench/v5jnls/bn_ef_bench_extrema.jnl
diff --git a/bench/bn_ef_curv_to_rect.jnl b/bench/v5jnls/bn_ef_curv_to_rect.jnl
similarity index 100%
rename from bench/bn_ef_curv_to_rect.jnl
rename to bench/v5jnls/bn_ef_curv_to_rect.jnl
diff --git a/bench/bn_ef_err541_date_delim.jnl b/bench/v5jnls/bn_ef_err541_date_delim.jnl
similarity index 100%
rename from bench/bn_ef_err541_date_delim.jnl
rename to bench/v5jnls/bn_ef_err541_date_delim.jnl
diff --git a/bench/bn_ef_zaxr_fcns.jnl b/bench/v5jnls/bn_ef_zaxr_fcns.jnl
similarity index 100%
rename from bench/bn_ef_zaxr_fcns.jnl
rename to bench/v5jnls/bn_ef_zaxr_fcns.jnl
diff --git a/bench/bn_eof_4d.jnl b/bench/v5jnls/bn_eof_4d.jnl
similarity index 98%
rename from bench/bn_eof_4d.jnl
rename to bench/v5jnls/bn_eof_4d.jnl
index d68b1e2..bad3eba 100644
--- a/bench/bn_eof_4d.jnl
+++ b/bench/v5jnls/bn_eof_4d.jnl
@@ -4,7 +4,6 @@
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
 
-
 ! dataset with 4 dimensions; compute EOF at each vertical level.
 
 use gt4d011.cdf
@@ -78,7 +77,7 @@ list/nohead/i=1:5/j=3/k=1 eofst  ! eigenvalues
 list/nohead/i=1:5/j=3/k=5 eofst
 list/nohead/i=1:5/j=3/k=9 eofst
 
-
+! The functions need updating for double precision Ferret
 exit/script
 ! -----------------------------------------------
 ! previous commands that called eof_space, eof_stat, eof_tfunc
diff --git a/bench/bn_exit_cycle.jnl b/bench/v5jnls/bn_exit_cycle.jnl
similarity index 100%
rename from bench/bn_exit_cycle.jnl
rename to bench/v5jnls/bn_exit_cycle.jnl
diff --git a/bench/bn_exit_script.jnl b/bench/v5jnls/bn_exit_script.jnl
similarity index 100%
rename from bench/bn_exit_script.jnl
rename to bench/v5jnls/bn_exit_script.jnl
diff --git a/bench/bn_fill_irregular.jnl b/bench/v5jnls/bn_fill_irregular.jnl
similarity index 100%
rename from bench/bn_fill_irregular.jnl
rename to bench/v5jnls/bn_fill_irregular.jnl
diff --git a/bench/bn_flowlines.jnl b/bench/v5jnls/bn_flowlines.jnl
similarity index 100%
rename from bench/bn_flowlines.jnl
rename to bench/v5jnls/bn_flowlines.jnl
diff --git a/bench/bn_graticules.jnl b/bench/v5jnls/bn_graticules.jnl
similarity index 100%
rename from bench/bn_graticules.jnl
rename to bench/v5jnls/bn_graticules.jnl
diff --git a/bench/bn_illegal_axisname.jnl b/bench/v5jnls/bn_illegal_axisname.jnl
similarity index 100%
rename from bench/bn_illegal_axisname.jnl
rename to bench/v5jnls/bn_illegal_axisname.jnl
diff --git a/bench/bn_inf_levels.jnl b/bench/v5jnls/bn_inf_levels.jnl
similarity index 100%
rename from bench/bn_inf_levels.jnl
rename to bench/v5jnls/bn_inf_levels.jnl
diff --git a/bench/bn_internal_external_functions.jnl b/bench/v5jnls/bn_internal_external_functions.jnl
similarity index 100%
rename from bench/bn_internal_external_functions.jnl
rename to bench/v5jnls/bn_internal_external_functions.jnl
diff --git a/bench/bn_labwid.jnl b/bench/v5jnls/bn_labwid.jnl
similarity index 100%
rename from bench/bn_labwid.jnl
rename to bench/v5jnls/bn_labwid.jnl
diff --git a/bench/bn_lev_symbols.jnl b/bench/v5jnls/bn_lev_symbols.jnl
similarity index 100%
rename from bench/bn_lev_symbols.jnl
rename to bench/v5jnls/bn_lev_symbols.jnl
diff --git a/bench/bn_logaxes.jnl b/bench/v5jnls/bn_logaxes.jnl
similarity index 100%
rename from bench/bn_logaxes.jnl
rename to bench/v5jnls/bn_logaxes.jnl
diff --git a/bench/bn_longvarnames.jnl b/bench/v5jnls/bn_longvarnames.jnl
similarity index 100%
rename from bench/bn_longvarnames.jnl
rename to bench/v5jnls/bn_longvarnames.jnl
diff --git a/bench/bn_many_polygons.jnl b/bench/v5jnls/bn_many_polygons.jnl
similarity index 100%
rename from bench/bn_many_polygons.jnl
rename to bench/v5jnls/bn_many_polygons.jnl
diff --git a/bench/bn_mc_vary_scale.jnl b/bench/v5jnls/bn_mc_vary_scale.jnl
similarity index 100%
rename from bench/bn_mc_vary_scale.jnl
rename to bench/v5jnls/bn_mc_vary_scale.jnl
diff --git a/bench/bn_mode_logo_lab.jnl b/bench/v5jnls/bn_mode_logo_lab.jnl
similarity index 100%
rename from bench/bn_mode_logo_lab.jnl
rename to bench/v5jnls/bn_mode_logo_lab.jnl
diff --git a/bench/bn_modstats.jnl b/bench/v5jnls/bn_modstats.jnl
similarity index 100%
rename from bench/bn_modstats.jnl
rename to bench/v5jnls/bn_modstats.jnl
diff --git a/bench/v5jnls/bn_modulo_attribute.jnl b/bench/v5jnls/bn_modulo_attribute.jnl
new file mode 100644
index 0000000..1a4622b
--- /dev/null
+++ b/bench/v5jnls/bn_modulo_attribute.jnl
@@ -0,0 +1,10 @@
+! Ferret V5.50 m
+
+! Modulo attribute can take numerical values to indicate 
+! the modulo length of axis (subspan modulo changes)
+! This script tests various string values of the attribute 
+! *acm* list the axis names, otherwise get random TIME* axes defined right now
+use modulo_lon_time
+
+sh ax lon_true, lon_moderr, lon_false, lon_mod_nounits, lon_usual
+sh ax time_true, time_moderr, time_false, time_mod_nounits, time_usual
diff --git a/bench/bn_modulo_strides.jnl b/bench/v5jnls/bn_modulo_strides.jnl
similarity index 100%
rename from bench/bn_modulo_strides.jnl
rename to bench/v5jnls/bn_modulo_strides.jnl
diff --git a/bench/bn_multi_line_labels.jnl b/bench/v5jnls/bn_multi_line_labels.jnl
similarity index 100%
rename from bench/bn_multi_line_labels.jnl
rename to bench/v5jnls/bn_multi_line_labels.jnl
diff --git a/bench/bn_non_COARDS_netCDF.jnl b/bench/v5jnls/bn_non_COARDS_netCDF.jnl
similarity index 100%
rename from bench/bn_non_COARDS_netCDF.jnl
rename to bench/v5jnls/bn_non_COARDS_netCDF.jnl
diff --git a/bench/bn_odd_variable_name.jnl b/bench/v5jnls/bn_odd_variable_name.jnl
similarity index 100%
rename from bench/bn_odd_variable_name.jnl
rename to bench/v5jnls/bn_odd_variable_name.jnl
diff --git a/bench/bn_pattern.jnl b/bench/v5jnls/bn_pattern.jnl
similarity index 100%
rename from bench/bn_pattern.jnl
rename to bench/v5jnls/bn_pattern.jnl
diff --git a/bench/bn_plot_nokey.jnl b/bench/v5jnls/bn_plot_nokey.jnl
similarity index 100%
rename from bench/bn_plot_nokey.jnl
rename to bench/v5jnls/bn_plot_nokey.jnl
diff --git a/bench/bn_polygon.jnl b/bench/v5jnls/bn_polygon.jnl
similarity index 100%
rename from bench/bn_polygon.jnl
rename to bench/v5jnls/bn_polygon.jnl
diff --git a/bench/bn_redefine_taxis_mc.jnl b/bench/v5jnls/bn_redefine_taxis_mc.jnl
similarity index 100%
rename from bench/bn_redefine_taxis_mc.jnl
rename to bench/v5jnls/bn_redefine_taxis_mc.jnl
diff --git a/bench/bn_regrid_to_user.jnl b/bench/v5jnls/bn_regrid_to_user.jnl
similarity index 100%
rename from bench/bn_regrid_to_user.jnl
rename to bench/v5jnls/bn_regrid_to_user.jnl
diff --git a/bench/bn_regulart.jnl b/bench/v5jnls/bn_regulart.jnl
similarity index 100%
rename from bench/bn_regulart.jnl
rename to bench/v5jnls/bn_regulart.jnl
diff --git a/bench/bn_repeat_range.jnl b/bench/v5jnls/bn_repeat_range.jnl
similarity index 100%
rename from bench/bn_repeat_range.jnl
rename to bench/v5jnls/bn_repeat_range.jnl
diff --git a/bench/bn_reset_attributes.jnl b/bench/v5jnls/bn_reset_attributes.jnl
similarity index 100%
rename from bench/bn_reset_attributes.jnl
rename to bench/v5jnls/bn_reset_attributes.jnl
diff --git a/bench/bn_sample.jnl b/bench/v5jnls/bn_sample.jnl
similarity index 100%
rename from bench/bn_sample.jnl
rename to bench/v5jnls/bn_sample.jnl
diff --git a/bench/bn_samplexy_sampleij.jnl b/bench/v5jnls/bn_samplexy_sampleij.jnl
similarity index 100%
rename from bench/bn_samplexy_sampleij.jnl
rename to bench/v5jnls/bn_samplexy_sampleij.jnl
diff --git a/bench/bn_scat2grid_gl.jnl b/bench/v5jnls/bn_scat2grid_gl.jnl
similarity index 100%
rename from bench/bn_scat2grid_gl.jnl
rename to bench/v5jnls/bn_scat2grid_gl.jnl
diff --git a/bench/bn_scat2grid_nobs.jnl b/bench/v5jnls/bn_scat2grid_nobs.jnl
similarity index 100%
rename from bench/bn_scat2grid_nobs.jnl
rename to bench/v5jnls/bn_scat2grid_nobs.jnl
diff --git a/bench/bn_scat2grid_t.jnl b/bench/v5jnls/bn_scat2grid_t.jnl
similarity index 100%
rename from bench/bn_scat2grid_t.jnl
rename to bench/v5jnls/bn_scat2grid_t.jnl
diff --git a/bench/bn_scat2grid_test.jnl b/bench/v5jnls/bn_scat2grid_test.jnl
similarity index 100%
rename from bench/bn_scat2grid_test.jnl
rename to bench/v5jnls/bn_scat2grid_test.jnl
diff --git a/bench/bn_scat2gridlaplace_tarasoff.jnl b/bench/v5jnls/bn_scat2gridlaplace_tarasoff.jnl
similarity index 100%
rename from bench/bn_scat2gridlaplace_tarasoff.jnl
rename to bench/v5jnls/bn_scat2gridlaplace_tarasoff.jnl
diff --git a/bench/bn_set_var_scale_off.jnl b/bench/v5jnls/bn_set_var_scale_off.jnl
similarity index 100%
rename from bench/bn_set_var_scale_off.jnl
rename to bench/v5jnls/bn_set_var_scale_off.jnl
diff --git a/bench/bn_shade_keycont.jnl b/bench/v5jnls/bn_shade_keycont.jnl
similarity index 100%
rename from bench/bn_shade_keycont.jnl
rename to bench/v5jnls/bn_shade_keycont.jnl
diff --git a/bench/bn_shakey.jnl b/bench/v5jnls/bn_shakey.jnl
similarity index 100%
rename from bench/bn_shakey.jnl
rename to bench/v5jnls/bn_shakey.jnl
diff --git a/bench/bn_strides_revs_perms.jnl b/bench/v5jnls/bn_strides_revs_perms.jnl
similarity index 100%
rename from bench/bn_strides_revs_perms.jnl
rename to bench/v5jnls/bn_strides_revs_perms.jnl
diff --git a/bench/bn_strings.jnl b/bench/v5jnls/bn_strings.jnl
similarity index 100%
rename from bench/bn_strings.jnl
rename to bench/v5jnls/bn_strings.jnl
diff --git a/bench/bn_subspan_modulo.jnl b/bench/v5jnls/bn_subspan_modulo.jnl
similarity index 100%
rename from bench/bn_subspan_modulo.jnl
rename to bench/v5jnls/bn_subspan_modulo.jnl
diff --git a/bench/bn_subspan_modulo.sub1 b/bench/v5jnls/bn_subspan_modulo.sub1
similarity index 100%
rename from bench/bn_subspan_modulo.sub1
rename to bench/v5jnls/bn_subspan_modulo.sub1
diff --git a/bench/bn_subspan_modulo.sub2 b/bench/v5jnls/bn_subspan_modulo.sub2
similarity index 100%
rename from bench/bn_subspan_modulo.sub2
rename to bench/v5jnls/bn_subspan_modulo.sub2
diff --git a/bench/bn_test_nan.jnl b/bench/v5jnls/bn_test_nan.jnl
similarity index 100%
rename from bench/bn_test_nan.jnl
rename to bench/v5jnls/bn_test_nan.jnl
diff --git a/bench/bn_test_stream_big.jnl b/bench/v5jnls/bn_test_stream_big.jnl
similarity index 100%
rename from bench/bn_test_stream_big.jnl
rename to bench/v5jnls/bn_test_stream_big.jnl
diff --git a/bench/bn_test_stream_little.jnl b/bench/v5jnls/bn_test_stream_little.jnl
similarity index 100%
rename from bench/bn_test_stream_little.jnl
rename to bench/v5jnls/bn_test_stream_little.jnl
diff --git a/bench/bn_transpose.jnl b/bench/v5jnls/bn_transpose.jnl
similarity index 100%
rename from bench/bn_transpose.jnl
rename to bench/v5jnls/bn_transpose.jnl
diff --git a/bench/bn_unique_str2int.jnl b/bench/v5jnls/bn_unique_str2int.jnl
similarity index 100%
rename from bench/bn_unique_str2int.jnl
rename to bench/v5jnls/bn_unique_str2int.jnl
diff --git a/bench/bn_vec_curv.jnl b/bench/v5jnls/bn_vec_curv.jnl
similarity index 100%
rename from bench/bn_vec_curv.jnl
rename to bench/v5jnls/bn_vec_curv.jnl
diff --git a/bench/bn_xml_output.jnl b/bench/v5jnls/bn_xml_output.jnl
similarity index 100%
rename from bench/bn_xml_output.jnl
rename to bench/v5jnls/bn_xml_output.jnl
diff --git a/bench/err500_IF_THEN_ELSE_quote.jnl b/bench/v5jnls/err500_IF_THEN_ELSE_quote.jnl
similarity index 100%
rename from bench/err500_IF_THEN_ELSE_quote.jnl
rename to bench/v5jnls/err500_IF_THEN_ELSE_quote.jnl
diff --git a/bench/err540_ax_ave.jnl b/bench/v5jnls/err540_ax_ave.jnl
similarity index 100%
rename from bench/err540_ax_ave.jnl
rename to bench/v5jnls/err540_ax_ave.jnl
diff --git a/bench/err540_axis_symbols.jnl b/bench/v5jnls/err540_axis_symbols.jnl
similarity index 100%
rename from bench/err540_axis_symbols.jnl
rename to bench/v5jnls/err540_axis_symbols.jnl
diff --git a/bench/err540_axset.jnl b/bench/v5jnls/err540_axset.jnl
similarity index 100%
rename from bench/err540_axset.jnl
rename to bench/v5jnls/err540_axset.jnl
diff --git a/bench/err540_cd_use_recdim.jnl b/bench/v5jnls/err540_cd_use_recdim.jnl
similarity index 100%
rename from bench/err540_cd_use_recdim.jnl
rename to bench/v5jnls/err540_cd_use_recdim.jnl
diff --git a/bench/err540_data_type.jnl b/bench/v5jnls/err540_data_type.jnl
similarity index 100%
rename from bench/err540_data_type.jnl
rename to bench/v5jnls/err540_data_type.jnl
diff --git a/bench/err540_dods_bad_dataset.jnl b/bench/v5jnls/err540_dods_bad_dataset.jnl
similarity index 100%
rename from bench/err540_dods_bad_dataset.jnl
rename to bench/v5jnls/err540_dods_bad_dataset.jnl
diff --git a/bench/err540_dods_bad_strides.jnl b/bench/v5jnls/err540_dods_bad_strides.jnl
similarity index 100%
rename from bench/err540_dods_bad_strides.jnl
rename to bench/v5jnls/err540_dods_bad_strides.jnl
diff --git a/bench/err540_ill_format.jnl b/bench/v5jnls/err540_ill_format.jnl
similarity index 100%
rename from bench/err540_ill_format.jnl
rename to bench/v5jnls/err540_ill_format.jnl
diff --git a/bench/err540_modscat.jnl b/bench/v5jnls/err540_modscat.jnl
similarity index 100%
rename from bench/err540_modscat.jnl
rename to bench/v5jnls/err540_modscat.jnl
diff --git a/bench/err540_parse_repeat.jnl b/bench/v5jnls/err540_parse_repeat.jnl
similarity index 100%
rename from bench/err540_parse_repeat.jnl
rename to bench/v5jnls/err540_parse_repeat.jnl
diff --git a/bench/err540_poly_overlay.jnl b/bench/v5jnls/err540_poly_overlay.jnl
similarity index 100%
rename from bench/err540_poly_overlay.jnl
rename to bench/v5jnls/err540_poly_overlay.jnl
diff --git a/bench/err540_polymissing.jnl b/bench/v5jnls/err540_polymissing.jnl
similarity index 100%
rename from bench/err540_polymissing.jnl
rename to bench/v5jnls/err540_polymissing.jnl
diff --git a/bench/err540_samplexy_missing.jnl b/bench/v5jnls/err540_samplexy_missing.jnl
similarity index 100%
rename from bench/err540_samplexy_missing.jnl
rename to bench/v5jnls/err540_samplexy_missing.jnl
diff --git a/bench/err540_strides_rev.jnl b/bench/v5jnls/err540_strides_rev.jnl
similarity index 100%
rename from bench/err540_strides_rev.jnl
rename to bench/v5jnls/err540_strides_rev.jnl
diff --git a/bench/err540_use.jnl b/bench/v5jnls/err540_use.jnl
similarity index 100%
rename from bench/err540_use.jnl
rename to bench/v5jnls/err540_use.jnl
diff --git a/bench/err540_vs_dash.jnl b/bench/v5jnls/err540_vs_dash.jnl
similarity index 100%
rename from bench/err540_vs_dash.jnl
rename to bench/v5jnls/err540_vs_dash.jnl
diff --git a/bench/err540_write_order.jnl b/bench/v5jnls/err540_write_order.jnl
similarity index 100%
rename from bench/err540_write_order.jnl
rename to bench/v5jnls/err540_write_order.jnl
diff --git a/bench/err541_cancel_axes.jnl b/bench/v5jnls/err541_cancel_axes.jnl
similarity index 100%
rename from bench/err541_cancel_axes.jnl
rename to bench/v5jnls/err541_cancel_axes.jnl
diff --git a/bench/err541_date_delim.jnl b/bench/v5jnls/err541_date_delim.jnl
similarity index 100%
rename from bench/err541_date_delim.jnl
rename to bench/v5jnls/err541_date_delim.jnl
diff --git a/bench/err541_fill_tics.jnl b/bench/v5jnls/err541_fill_tics.jnl
similarity index 100%
rename from bench/err541_fill_tics.jnl
rename to bench/v5jnls/err541_fill_tics.jnl
diff --git a/bench/err541_non_gregorian.jnl b/bench/v5jnls/err541_non_gregorian.jnl
similarity index 100%
rename from bench/err541_non_gregorian.jnl
rename to bench/v5jnls/err541_non_gregorian.jnl
diff --git a/bench/err541_string4d.jnl b/bench/v5jnls/err541_string4d.jnl
similarity index 100%
rename from bench/err541_string4d.jnl
rename to bench/v5jnls/err541_string4d.jnl
diff --git a/bench/err542_poly_over_calendar.jnl b/bench/v5jnls/err542_poly_over_calendar.jnl
similarity index 100%
rename from bench/err542_poly_over_calendar.jnl
rename to bench/v5jnls/err542_poly_over_calendar.jnl
diff --git a/bench/err550_define_axis_expression.jnl b/bench/v5jnls/err550_define_axis_expression.jnl
similarity index 100%
rename from bench/err550_define_axis_expression.jnl
rename to bench/v5jnls/err550_define_axis_expression.jnl
diff --git a/bench/err550_dots_thickpens.jnl b/bench/v5jnls/err550_dots_thickpens.jnl
similarity index 100%
rename from bench/err550_dots_thickpens.jnl
rename to bench/v5jnls/err550_dots_thickpens.jnl
diff --git a/bench/err550_nc_seconds.jnl b/bench/v5jnls/err550_nc_seconds.jnl
similarity index 84%
rename from bench/err550_nc_seconds.jnl
rename to bench/v5jnls/err550_nc_seconds.jnl
index a8f95ed..452cc82 100644
--- a/bench/err550_nc_seconds.jnl
+++ b/bench/v5jnls/err550_nc_seconds.jnl
@@ -8,5 +8,5 @@
 use time_axis_seconds.nc
 
 sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
+sp ncdump data/time_axis_seconds.nc | grep origin >> all_ncdump.out
 list t[gt=height]    ! Seconds should be 36, 37, 38...
diff --git a/bench/err550_redefine_calendar_axis.jnl b/bench/v5jnls/err550_redefine_calendar_axis.jnl
similarity index 100%
rename from bench/err550_redefine_calendar_axis.jnl
rename to bench/v5jnls/err550_redefine_calendar_axis.jnl
diff --git a/bench/err550_shade_limits.jnl b/bench/v5jnls/err550_shade_limits.jnl
similarity index 100%
rename from bench/err550_shade_limits.jnl
rename to bench/v5jnls/err550_shade_limits.jnl
diff --git a/bench/err550_view_axes_fill.jnl b/bench/v5jnls/err550_view_axes_fill.jnl
similarity index 100%
rename from bench/err550_view_axes_fill.jnl
rename to bench/v5jnls/err550_view_axes_fill.jnl
diff --git a/bench/err550_view_axes_position.jnl b/bench/v5jnls/err550_view_axes_position.jnl
similarity index 100%
rename from bench/err550_view_axes_position.jnl
rename to bench/v5jnls/err550_view_axes_position.jnl
diff --git a/bench/err551_2dave.jnl b/bench/v5jnls/err551_2dave.jnl
similarity index 100%
rename from bench/err551_2dave.jnl
rename to bench/v5jnls/err551_2dave.jnl
diff --git a/bench/err551_axes_set.jnl b/bench/v5jnls/err551_axes_set.jnl
similarity index 100%
rename from bench/err551_axes_set.jnl
rename to bench/v5jnls/err551_axes_set.jnl
diff --git a/bench/err551_colorkey.jnl b/bench/v5jnls/err551_colorkey.jnl
similarity index 100%
rename from bench/err551_colorkey.jnl
rename to bench/v5jnls/err551_colorkey.jnl
diff --git a/bench/err551_fft_freqaxis.jnl b/bench/v5jnls/err551_fft_freqaxis.jnl
similarity index 100%
rename from bench/err551_fft_freqaxis.jnl
rename to bench/v5jnls/err551_fft_freqaxis.jnl
diff --git a/bench/err551_invalid_calendar.jnl b/bench/v5jnls/err551_invalid_calendar.jnl
similarity index 100%
rename from bench/err551_invalid_calendar.jnl
rename to bench/v5jnls/err551_invalid_calendar.jnl
diff --git a/bench/err551_modulo_nc_regrid.jnl b/bench/v5jnls/err551_modulo_nc_regrid.jnl
similarity index 100%
rename from bench/err551_modulo_nc_regrid.jnl
rename to bench/v5jnls/err551_modulo_nc_regrid.jnl
diff --git a/bench/err551_no_taxis_errmsg.jnl b/bench/v5jnls/err551_no_taxis_errmsg.jnl
similarity index 100%
rename from bench/err551_no_taxis_errmsg.jnl
rename to bench/v5jnls/err551_no_taxis_errmsg.jnl
diff --git a/bench/err551_num_levels.jnl b/bench/v5jnls/err551_num_levels.jnl
similarity index 100%
rename from bench/err551_num_levels.jnl
rename to bench/v5jnls/err551_num_levels.jnl
diff --git a/bench/err551_regrid_undef_grid.jnl b/bench/v5jnls/err551_regrid_undef_grid.jnl
similarity index 100%
rename from bench/err551_regrid_undef_grid.jnl
rename to bench/v5jnls/err551_regrid_undef_grid.jnl
diff --git a/bench/err551_repeat_sym.jnl b/bench/v5jnls/err551_repeat_sym.jnl
similarity index 100%
rename from bench/err551_repeat_sym.jnl
rename to bench/v5jnls/err551_repeat_sym.jnl
diff --git a/bench/err551_return_message.jnl b/bench/v5jnls/err551_return_message.jnl
similarity index 100%
rename from bench/err551_return_message.jnl
rename to bench/v5jnls/err551_return_message.jnl
diff --git a/bench/err551_streamread_directory.jnl b/bench/v5jnls/err551_streamread_directory.jnl
similarity index 100%
rename from bench/err551_streamread_directory.jnl
rename to bench/v5jnls/err551_streamread_directory.jnl
diff --git a/bench/err551_strings.jnl b/bench/v5jnls/err551_strings.jnl
similarity index 100%
rename from bench/err551_strings.jnl
rename to bench/v5jnls/err551_strings.jnl
diff --git a/bench/err553_axis_too_long.jnl b/bench/v5jnls/err553_axis_too_long.jnl
similarity index 100%
rename from bench/err553_axis_too_long.jnl
rename to bench/v5jnls/err553_axis_too_long.jnl
diff --git a/bench/err553_contour_fine_grid.jnl b/bench/v5jnls/err553_contour_fine_grid.jnl
similarity index 100%
rename from bench/err553_contour_fine_grid.jnl
rename to bench/v5jnls/err553_contour_fine_grid.jnl
diff --git a/bench/err553_lev_c.jnl b/bench/v5jnls/err553_lev_c.jnl
similarity index 100%
rename from bench/err553_lev_c.jnl
rename to bench/v5jnls/err553_lev_c.jnl
diff --git a/bench/err553_list_string_numeric.jnl b/bench/v5jnls/err553_list_string_numeric.jnl
similarity index 100%
rename from bench/err553_list_string_numeric.jnl
rename to bench/v5jnls/err553_list_string_numeric.jnl
diff --git a/bench/err553_list_width.jnl b/bench/v5jnls/err553_list_width.jnl
similarity index 100%
rename from bench/err553_list_width.jnl
rename to bench/v5jnls/err553_list_width.jnl
diff --git a/bench/err553_lon_ax_0_label.jnl b/bench/v5jnls/err553_lon_ax_0_label.jnl
similarity index 100%
rename from bench/err553_lon_ax_0_label.jnl
rename to bench/v5jnls/err553_lon_ax_0_label.jnl
diff --git a/bench/err553_long_string_var_name.jnl b/bench/v5jnls/err553_long_string_var_name.jnl
similarity index 100%
rename from bench/err553_long_string_var_name.jnl
rename to bench/v5jnls/err553_long_string_var_name.jnl
diff --git a/bench/err553_numeric_filename.jnl b/bench/v5jnls/err553_numeric_filename.jnl
similarity index 100%
rename from bench/err553_numeric_filename.jnl
rename to bench/v5jnls/err553_numeric_filename.jnl
diff --git a/bench/err553_regionname_lengths.jnl b/bench/v5jnls/err553_regionname_lengths.jnl
similarity index 100%
rename from bench/err553_regionname_lengths.jnl
rename to bench/v5jnls/err553_regionname_lengths.jnl
diff --git a/bench/err553_set_axis_depth.jnl b/bench/v5jnls/err553_set_axis_depth.jnl
similarity index 100%
rename from bench/err553_set_axis_depth.jnl
rename to bench/v5jnls/err553_set_axis_depth.jnl
diff --git a/bench/err553_shakey_labels.jnl b/bench/v5jnls/err553_shakey_labels.jnl
similarity index 100%
rename from bench/err553_shakey_labels.jnl
rename to bench/v5jnls/err553_shakey_labels.jnl
diff --git a/bench/err553_stride_def_grid.jnl b/bench/v5jnls/err553_stride_def_grid.jnl
similarity index 100%
rename from bench/err553_stride_def_grid.jnl
rename to bench/v5jnls/err553_stride_def_grid.jnl
diff --git a/bench/err553_stride_modulo.jnl b/bench/v5jnls/err553_stride_modulo.jnl
similarity index 100%
rename from bench/err553_stride_modulo.jnl
rename to bench/v5jnls/err553_stride_modulo.jnl
diff --git a/bench/err553_symbol_lev.jnl b/bench/v5jnls/err553_symbol_lev.jnl
similarity index 100%
rename from bench/err553_symbol_lev.jnl
rename to bench/v5jnls/err553_symbol_lev.jnl
diff --git a/bench/err553_symsize.jnl b/bench/v5jnls/err553_symsize.jnl
similarity index 100%
rename from bench/err553_symsize.jnl
rename to bench/v5jnls/err553_symsize.jnl
diff --git a/bench/err553_timeregion.jnl b/bench/v5jnls/err553_timeregion.jnl
similarity index 100%
rename from bench/err553_timeregion.jnl
rename to bench/v5jnls/err553_timeregion.jnl
diff --git a/bench/err553_xaxis_nsmtc.jnl b/bench/v5jnls/err553_xaxis_nsmtc.jnl
similarity index 100%
rename from bench/err553_xaxis_nsmtc.jnl
rename to bench/v5jnls/err553_xaxis_nsmtc.jnl
diff --git a/bench/err553_year_yr.jnl b/bench/v5jnls/err553_year_yr.jnl
similarity index 100%
rename from bench/err553_year_yr.jnl
rename to bench/v5jnls/err553_year_yr.jnl
diff --git a/bench/err560_century.jnl b/bench/v5jnls/err560_century.jnl
similarity index 100%
rename from bench/err560_century.jnl
rename to bench/v5jnls/err560_century.jnl
diff --git a/bench/err560_leap_years.jnl b/bench/v5jnls/err560_leap_years.jnl
similarity index 100%
rename from bench/err560_leap_years.jnl
rename to bench/v5jnls/err560_leap_years.jnl
diff --git a/bench/err560_mc_irreg_t.jnl b/bench/v5jnls/err560_mc_irreg_t.jnl
similarity index 100%
rename from bench/err560_mc_irreg_t.jnl
rename to bench/v5jnls/err560_mc_irreg_t.jnl
diff --git a/bench/err560_regridding_gaps.jnl b/bench/v5jnls/err560_regridding_gaps.jnl
similarity index 100%
rename from bench/err560_regridding_gaps.jnl
rename to bench/v5jnls/err560_regridding_gaps.jnl
diff --git a/bench/err560_shade_levels.jnl b/bench/v5jnls/err560_shade_levels.jnl
similarity index 100%
rename from bench/err560_shade_levels.jnl
rename to bench/v5jnls/err560_shade_levels.jnl
diff --git a/bench/err560_shade_noleap.jnl b/bench/v5jnls/err560_shade_noleap.jnl
similarity index 100%
rename from bench/err560_shade_noleap.jnl
rename to bench/v5jnls/err560_shade_noleap.jnl
diff --git a/bench/err570_cnnn_multiline.jnl b/bench/v5jnls/err570_cnnn_multiline.jnl
similarity index 100%
rename from bench/err570_cnnn_multiline.jnl
rename to bench/v5jnls/err570_cnnn_multiline.jnl
diff --git a/bench/err570_coaching.jnl b/bench/v5jnls/err570_coaching.jnl
similarity index 100%
rename from bench/err570_coaching.jnl
rename to bench/v5jnls/err570_coaching.jnl
diff --git a/bench/err570_compressk_by.jnl b/bench/v5jnls/err570_compressk_by.jnl
similarity index 100%
rename from bench/err570_compressk_by.jnl
rename to bench/v5jnls/err570_compressk_by.jnl
diff --git a/bench/err570_digit_filename.jnl b/bench/v5jnls/err570_digit_filename.jnl
similarity index 100%
rename from bench/err570_digit_filename.jnl
rename to bench/v5jnls/err570_digit_filename.jnl
diff --git a/bench/err570_dods_url_label.jnl b/bench/v5jnls/err570_dods_url_label.jnl
similarity index 100%
rename from bench/err570_dods_url_label.jnl
rename to bench/v5jnls/err570_dods_url_label.jnl
diff --git a/bench/err570_dollar_zero.jnl b/bench/v5jnls/err570_dollar_zero.jnl
similarity index 100%
rename from bench/err570_dollar_zero.jnl
rename to bench/v5jnls/err570_dollar_zero.jnl
diff --git a/bench/err570_fine_grid_list.jnl b/bench/v5jnls/err570_fine_grid_list.jnl
similarity index 100%
rename from bench/err570_fine_grid_list.jnl
rename to bench/v5jnls/err570_fine_grid_list.jnl
diff --git a/bench/err570_hlimit_onepoint.jnl b/bench/v5jnls/err570_hlimit_onepoint.jnl
similarity index 100%
rename from bench/err570_hlimit_onepoint.jnl
rename to bench/v5jnls/err570_hlimit_onepoint.jnl
diff --git a/bench/err570_illegal_stride.jnl b/bench/v5jnls/err570_illegal_stride.jnl
similarity index 100%
rename from bench/err570_illegal_stride.jnl
rename to bench/v5jnls/err570_illegal_stride.jnl
diff --git a/bench/err570_index111.jnl b/bench/v5jnls/err570_index111.jnl
similarity index 100%
rename from bench/err570_index111.jnl
rename to bench/v5jnls/err570_index111.jnl
diff --git a/bench/err570_keylabels.jnl b/bench/v5jnls/err570_keylabels.jnl
similarity index 100%
rename from bench/err570_keylabels.jnl
rename to bench/v5jnls/err570_keylabels.jnl
diff --git a/bench/err570_list_tab_coords.jnl b/bench/v5jnls/err570_list_tab_coords.jnl
similarity index 100%
rename from bench/err570_list_tab_coords.jnl
rename to bench/v5jnls/err570_list_tab_coords.jnl
diff --git a/bench/err570_long_label.jnl b/bench/v5jnls/err570_long_label.jnl
similarity index 100%
rename from bench/err570_long_label.jnl
rename to bench/v5jnls/err570_long_label.jnl
diff --git a/bench/err570_many_variables.jnl b/bench/v5jnls/err570_many_variables.jnl
similarity index 100%
rename from bench/err570_many_variables.jnl
rename to bench/v5jnls/err570_many_variables.jnl
diff --git a/bench/err570_null_symbol.jnl b/bench/v5jnls/err570_null_symbol.jnl
similarity index 100%
rename from bench/err570_null_symbol.jnl
rename to bench/v5jnls/err570_null_symbol.jnl
diff --git a/bench/err570_parse_labelcommand.jnl b/bench/v5jnls/err570_parse_labelcommand.jnl
similarity index 100%
rename from bench/err570_parse_labelcommand.jnl
rename to bench/v5jnls/err570_parse_labelcommand.jnl
diff --git a/bench/err570_poly_lonlat_axis.jnl b/bench/v5jnls/err570_poly_lonlat_axis.jnl
similarity index 100%
rename from bench/err570_poly_lonlat_axis.jnl
rename to bench/v5jnls/err570_poly_lonlat_axis.jnl
diff --git a/bench/err570_poly_over_julian.jnl b/bench/v5jnls/err570_poly_over_julian.jnl
similarity index 100%
rename from bench/err570_poly_over_julian.jnl
rename to bench/v5jnls/err570_poly_over_julian.jnl
diff --git a/bench/err570_ppl_poly.jnl b/bench/v5jnls/err570_ppl_poly.jnl
similarity index 100%
rename from bench/err570_ppl_poly.jnl
rename to bench/v5jnls/err570_ppl_poly.jnl
diff --git a/bench/err570_sh_dat_nan.jnl b/bench/v5jnls/err570_sh_dat_nan.jnl
similarity index 100%
rename from bench/err570_sh_dat_nan.jnl
rename to bench/v5jnls/err570_sh_dat_nan.jnl
diff --git a/bench/err570_shakeylab.jnl b/bench/v5jnls/err570_shakeylab.jnl
similarity index 100%
rename from bench/err570_shakeylab.jnl
rename to bench/v5jnls/err570_shakeylab.jnl
diff --git a/bench/err570_singlecolor.jnl b/bench/v5jnls/err570_singlecolor.jnl
similarity index 100%
rename from bench/err570_singlecolor.jnl
rename to bench/v5jnls/err570_singlecolor.jnl
diff --git a/bench/err570_thick_colors.jnl b/bench/v5jnls/err570_thick_colors.jnl
similarity index 100%
rename from bench/err570_thick_colors.jnl
rename to bench/v5jnls/err570_thick_colors.jnl
diff --git a/bench/err570_time_range.jnl b/bench/v5jnls/err570_time_range.jnl
similarity index 100%
rename from bench/err570_time_range.jnl
rename to bench/v5jnls/err570_time_range.jnl
diff --git a/bench/err580_arg_case.jnl b/bench/v5jnls/err580_arg_case.jnl
similarity index 100%
rename from bench/err580_arg_case.jnl
rename to bench/v5jnls/err580_arg_case.jnl
diff --git a/bench/err580_cal360_region.jnl b/bench/v5jnls/err580_cal360_region.jnl
similarity index 100%
rename from bench/err580_cal360_region.jnl
rename to bench/v5jnls/err580_cal360_region.jnl
diff --git a/bench/err580_cartesian_depth.jnl b/bench/v5jnls/err580_cartesian_depth.jnl
similarity index 100%
rename from bench/err580_cartesian_depth.jnl
rename to bench/v5jnls/err580_cartesian_depth.jnl
diff --git a/bench/err580_cdb.jnl b/bench/v5jnls/err580_cdb.jnl
similarity index 100%
rename from bench/err580_cdb.jnl
rename to bench/v5jnls/err580_cdb.jnl
diff --git a/bench/err580_cdc_timeaxis.jnl b/bench/v5jnls/err580_cdc_timeaxis.jnl
similarity index 100%
rename from bench/err580_cdc_timeaxis.jnl
rename to bench/v5jnls/err580_cdc_timeaxis.jnl
diff --git a/bench/err580_def_tax_norange.jnl b/bench/v5jnls/err580_def_tax_norange.jnl
similarity index 100%
rename from bench/err580_def_tax_norange.jnl
rename to bench/v5jnls/err580_def_tax_norange.jnl
diff --git a/bench/err580_def_view_axes.jnl b/bench/v5jnls/err580_def_view_axes.jnl
similarity index 100%
rename from bench/err580_def_view_axes.jnl
rename to bench/v5jnls/err580_def_view_axes.jnl
diff --git a/bench/err580_irreg_bounds.jnl b/bench/v5jnls/err580_irreg_bounds.jnl
similarity index 100%
rename from bench/err580_irreg_bounds.jnl
rename to bench/v5jnls/err580_irreg_bounds.jnl
diff --git a/bench/err580_lev_del.jnl b/bench/v5jnls/err580_lev_del.jnl
similarity index 100%
rename from bench/err580_lev_del.jnl
rename to bench/v5jnls/err580_lev_del.jnl
diff --git a/bench/err580_long_dsettitle.jnl b/bench/v5jnls/err580_long_dsettitle.jnl
similarity index 100%
rename from bench/err580_long_dsettitle.jnl
rename to bench/v5jnls/err580_long_dsettitle.jnl
diff --git a/bench/err580_long_title.jnl b/bench/v5jnls/err580_long_title.jnl
similarity index 100%
rename from bench/err580_long_title.jnl
rename to bench/v5jnls/err580_long_title.jnl
diff --git a/bench/err580_long_veckey.jnl b/bench/v5jnls/err580_long_veckey.jnl
similarity index 100%
rename from bench/err580_long_veckey.jnl
rename to bench/v5jnls/err580_long_veckey.jnl
diff --git a/bench/err580_show_axis_t.jnl b/bench/v5jnls/err580_show_axis_t.jnl
similarity index 100%
rename from bench/err580_show_axis_t.jnl
rename to bench/v5jnls/err580_show_axis_t.jnl
diff --git a/bench/err580_strfloat_errors.jnl b/bench/v5jnls/err580_strfloat_errors.jnl
similarity index 100%
rename from bench/err580_strfloat_errors.jnl
rename to bench/v5jnls/err580_strfloat_errors.jnl
diff --git a/bench/err580_use_des.jnl b/bench/v5jnls/err580_use_des.jnl
similarity index 100%
rename from bench/err580_use_des.jnl
rename to bench/v5jnls/err580_use_des.jnl
diff --git a/bench/err581_cal_dates_output.jnl b/bench/v5jnls/err581_cal_dates_output.jnl
similarity index 100%
rename from bench/err581_cal_dates_output.jnl
rename to bench/v5jnls/err581_cal_dates_output.jnl
diff --git a/bench/err581_cancel_data.jnl b/bench/v5jnls/err581_cancel_data.jnl
similarity index 100%
rename from bench/err581_cancel_data.jnl
rename to bench/v5jnls/err581_cancel_data.jnl
diff --git a/bench/err581_command_cx.jnl b/bench/v5jnls/err581_command_cx.jnl
similarity index 100%
rename from bench/err581_command_cx.jnl
rename to bench/v5jnls/err581_command_cx.jnl
diff --git a/bench/err581_contour_zero_lev.jnl b/bench/v5jnls/err581_contour_zero_lev.jnl
similarity index 100%
rename from bench/err581_contour_zero_lev.jnl
rename to bench/v5jnls/err581_contour_zero_lev.jnl
diff --git a/bench/err581_define_1pt_bounds.jnl b/bench/v5jnls/err581_define_1pt_bounds.jnl
similarity index 100%
rename from bench/err581_define_1pt_bounds.jnl
rename to bench/v5jnls/err581_define_1pt_bounds.jnl
diff --git a/bench/err581_des_scale.jnl b/bench/v5jnls/err581_des_scale.jnl
similarity index 100%
rename from bench/err581_des_scale.jnl
rename to bench/v5jnls/err581_des_scale.jnl
diff --git a/bench/err581_exp_spaces.jnl b/bench/v5jnls/err581_exp_spaces.jnl
similarity index 100%
rename from bench/err581_exp_spaces.jnl
rename to bench/v5jnls/err581_exp_spaces.jnl
diff --git a/bench/err581_hlim_axislab.jnl b/bench/v5jnls/err581_hlim_axislab.jnl
similarity index 100%
rename from bench/err581_hlim_axislab.jnl
rename to bench/v5jnls/err581_hlim_axislab.jnl
diff --git a/bench/err581_if_conditional.jnl b/bench/v5jnls/err581_if_conditional.jnl
similarity index 100%
rename from bench/err581_if_conditional.jnl
rename to bench/v5jnls/err581_if_conditional.jnl
diff --git a/bench/err581_illegal_trans.jnl b/bench/v5jnls/err581_illegal_trans.jnl
similarity index 100%
rename from bench/err581_illegal_trans.jnl
rename to bench/v5jnls/err581_illegal_trans.jnl
diff --git a/bench/err581_list_stray_chars.jnl b/bench/v5jnls/err581_list_stray_chars.jnl
similarity index 100%
rename from bench/err581_list_stray_chars.jnl
rename to bench/v5jnls/err581_list_stray_chars.jnl
diff --git a/bench/err581_missing_scale_off.jnl b/bench/v5jnls/err581_missing_scale_off.jnl
similarity index 100%
rename from bench/err581_missing_scale_off.jnl
rename to bench/v5jnls/err581_missing_scale_off.jnl
diff --git a/bench/err581_nlev.jnl b/bench/v5jnls/err581_nlev.jnl
similarity index 100%
rename from bench/err581_nlev.jnl
rename to bench/v5jnls/err581_nlev.jnl
diff --git a/bench/err581_noleap_mod.jnl b/bench/v5jnls/err581_noleap_mod.jnl
similarity index 100%
rename from bench/err581_noleap_mod.jnl
rename to bench/v5jnls/err581_noleap_mod.jnl
diff --git a/bench/err581_poly_rev.jnl b/bench/v5jnls/err581_poly_rev.jnl
similarity index 100%
rename from bench/err581_poly_rev.jnl
rename to bench/v5jnls/err581_poly_rev.jnl
diff --git a/bench/err581_shakey_inf.jnl b/bench/v5jnls/err581_shakey_inf.jnl
similarity index 100%
rename from bench/err581_shakey_inf.jnl
rename to bench/v5jnls/err581_shakey_inf.jnl
diff --git a/bench/err581_sho_func_pattern_match.jnl b/bench/v5jnls/err581_sho_func_pattern_match.jnl
similarity index 100%
rename from bench/err581_sho_func_pattern_match.jnl
rename to bench/v5jnls/err581_sho_func_pattern_match.jnl
diff --git a/bench/err581_since_units.jnl b/bench/v5jnls/err581_since_units.jnl
similarity index 100%
rename from bench/err581_since_units.jnl
rename to bench/v5jnls/err581_since_units.jnl
diff --git a/bench/err581_strrindex.jnl b/bench/v5jnls/err581_strrindex.jnl
similarity index 100%
rename from bench/err581_strrindex.jnl
rename to bench/v5jnls/err581_strrindex.jnl
diff --git a/bench/err581_subspanx_fill_bug.jnl b/bench/v5jnls/err581_subspanx_fill_bug.jnl
similarity index 100%
rename from bench/err581_subspanx_fill_bug.jnl
rename to bench/v5jnls/err581_subspanx_fill_bug.jnl
diff --git a/bench/err581_use_bounds.jnl b/bench/v5jnls/err581_use_bounds.jnl
similarity index 100%
rename from bench/err581_use_bounds.jnl
rename to bench/v5jnls/err581_use_bounds.jnl
diff --git a/bench/err581_vs_poly_axis.jnl b/bench/v5jnls/err581_vs_poly_axis.jnl
similarity index 100%
rename from bench/err581_vs_poly_axis.jnl
rename to bench/v5jnls/err581_vs_poly_axis.jnl
diff --git a/bench/exit_script_1.jnl b/bench/v5jnls/exit_script_1.jnl
similarity index 100%
rename from bench/exit_script_1.jnl
rename to bench/v5jnls/exit_script_1.jnl
diff --git a/bench/exit_script_if.jnl b/bench/v5jnls/exit_script_if.jnl
similarity index 100%
rename from bench/exit_script_if.jnl
rename to bench/v5jnls/exit_script_if.jnl
diff --git a/bench/exit_script_if_loop.jnl b/bench/v5jnls/exit_script_if_loop.jnl
similarity index 100%
rename from bench/exit_script_if_loop.jnl
rename to bench/v5jnls/exit_script_if_loop.jnl
diff --git a/bench/exit_script_inloop.jnl b/bench/v5jnls/exit_script_inloop.jnl
similarity index 100%
rename from bench/exit_script_inloop.jnl
rename to bench/v5jnls/exit_script_inloop.jnl
diff --git a/bench/exit_script_loop.jnl b/bench/v5jnls/exit_script_loop.jnl
similarity index 100%
rename from bench/exit_script_loop.jnl
rename to bench/v5jnls/exit_script_loop.jnl
diff --git a/bench/exit_script_twolev.jnl b/bench/v5jnls/exit_script_twolev.jnl
similarity index 100%
rename from bench/exit_script_twolev.jnl
rename to bench/v5jnls/exit_script_twolev.jnl
diff --git a/bench/non_std_refmap.jnl b/bench/v5jnls/non_std_refmap.jnl
similarity index 100%
rename from bench/non_std_refmap.jnl
rename to bench/v5jnls/non_std_refmap.jnl
diff --git a/bench/bn600_bug_fixes.jnl b/bench/v6jnls/bn600_bug_fixes.jnl
similarity index 100%
rename from bench/bn600_bug_fixes.jnl
rename to bench/v6jnls/bn600_bug_fixes.jnl
diff --git a/bench/bn601_bug_fixes.jnl b/bench/v6jnls/bn601_bug_fixes.jnl
similarity index 100%
rename from bench/bn601_bug_fixes.jnl
rename to bench/v6jnls/bn601_bug_fixes.jnl
diff --git a/bench/bn602_bug_fixes.jnl b/bench/v6jnls/bn602_bug_fixes.jnl
similarity index 100%
rename from bench/bn602_bug_fixes.jnl
rename to bench/v6jnls/bn602_bug_fixes.jnl
diff --git a/bench/bn603_bug_fixes.jnl b/bench/v6jnls/bn603_bug_fixes.jnl
similarity index 100%
rename from bench/bn603_bug_fixes.jnl
rename to bench/v6jnls/bn603_bug_fixes.jnl
diff --git a/bench/bn605_bug_fixes.jnl b/bench/v6jnls/bn605_bug_fixes.jnl
similarity index 100%
rename from bench/bn605_bug_fixes.jnl
rename to bench/v6jnls/bn605_bug_fixes.jnl
diff --git a/bench/bn608_bug_fixes.jnl b/bench/v6jnls/bn608_bug_fixes.jnl
similarity index 100%
rename from bench/bn608_bug_fixes.jnl
rename to bench/v6jnls/bn608_bug_fixes.jnl
diff --git a/bench/bn611_bug_fixes.jnl b/bench/v6jnls/bn611_bug_fixes.jnl
similarity index 100%
rename from bench/bn611_bug_fixes.jnl
rename to bench/v6jnls/bn611_bug_fixes.jnl
diff --git a/bench/bn614_bug_fixes.jnl b/bench/v6jnls/bn614_bug_fixes.jnl
similarity index 100%
rename from bench/bn614_bug_fixes.jnl
rename to bench/v6jnls/bn614_bug_fixes.jnl
diff --git a/bench/bn61_bug_fixes.jnl b/bench/v6jnls/bn61_bug_fixes.jnl
similarity index 100%
rename from bench/bn61_bug_fixes.jnl
rename to bench/v6jnls/bn61_bug_fixes.jnl
diff --git a/bench/bn62_bug_fixes.jnl b/bench/v6jnls/bn62_bug_fixes.jnl
similarity index 100%
rename from bench/bn62_bug_fixes.jnl
rename to bench/v6jnls/bn62_bug_fixes.jnl
diff --git a/bench/bn63_bug_fixes.jnl b/bench/v6jnls/bn63_bug_fixes.jnl
similarity index 100%
rename from bench/bn63_bug_fixes.jnl
rename to bench/v6jnls/bn63_bug_fixes.jnl
diff --git a/bench/bn64_bug_fixes.jnl b/bench/v6jnls/bn64_bug_fixes.jnl
similarity index 100%
rename from bench/bn64_bug_fixes.jnl
rename to bench/v6jnls/bn64_bug_fixes.jnl
diff --git a/bench/bn65_bug_fixes.jnl b/bench/v6jnls/bn65_bug_fixes.jnl
similarity index 100%
rename from bench/bn65_bug_fixes.jnl
rename to bench/v6jnls/bn65_bug_fixes.jnl
diff --git a/bench/bn663_bug_fixes.jnl b/bench/v6jnls/bn663_bug_fixes.jnl
similarity index 100%
rename from bench/bn663_bug_fixes.jnl
rename to bench/v6jnls/bn663_bug_fixes.jnl
diff --git a/bench/bn665_bug_fixes.jnl b/bench/v6jnls/bn665_bug_fixes.jnl
similarity index 100%
rename from bench/bn665_bug_fixes.jnl
rename to bench/v6jnls/bn665_bug_fixes.jnl
diff --git a/bench/bn66_bug_fixes.jnl b/bench/v6jnls/bn66_bug_fixes.jnl
similarity index 100%
rename from bench/bn66_bug_fixes.jnl
rename to bench/v6jnls/bn66_bug_fixes.jnl
diff --git a/bench/bn671_bug_fixes.jnl b/bench/v6jnls/bn671_bug_fixes.jnl
similarity index 100%
rename from bench/bn671_bug_fixes.jnl
rename to bench/v6jnls/bn671_bug_fixes.jnl
diff --git a/bench/bn67_bug_fixes.jnl b/bench/v6jnls/bn67_bug_fixes.jnl
similarity index 100%
rename from bench/bn67_bug_fixes.jnl
rename to bench/v6jnls/bn67_bug_fixes.jnl
diff --git a/bench/bn682_bug_fixes.jnl b/bench/v6jnls/bn682_bug_fixes.jnl
similarity index 100%
rename from bench/bn682_bug_fixes.jnl
rename to bench/v6jnls/bn682_bug_fixes.jnl
diff --git a/bench/bn683_bug_fixes.jnl b/bench/v6jnls/bn683_bug_fixes.jnl
similarity index 100%
rename from bench/bn683_bug_fixes.jnl
rename to bench/v6jnls/bn683_bug_fixes.jnl
diff --git a/bench/bn685_bug_fixes.jnl b/bench/v6jnls/bn685_bug_fixes.jnl
similarity index 100%
rename from bench/bn685_bug_fixes.jnl
rename to bench/v6jnls/bn685_bug_fixes.jnl
diff --git a/bench/bn686_bug_fixes.jnl b/bench/v6jnls/bn686_bug_fixes.jnl
similarity index 100%
rename from bench/bn686_bug_fixes.jnl
rename to bench/v6jnls/bn686_bug_fixes.jnl
diff --git a/bench/bn68_bug_fixes.jnl b/bench/v6jnls/bn68_bug_fixes.jnl
similarity index 100%
rename from bench/bn68_bug_fixes.jnl
rename to bench/v6jnls/bn68_bug_fixes.jnl
diff --git a/bench/bn691_bug_fixes.jnl b/bench/v6jnls/bn691_bug_fixes.jnl
similarity index 100%
rename from bench/bn691_bug_fixes.jnl
rename to bench/v6jnls/bn691_bug_fixes.jnl
diff --git a/bench/bn694_bug_fixes.jnl b/bench/v6jnls/bn694_bug_fixes.jnl
similarity index 100%
rename from bench/bn694_bug_fixes.jnl
rename to bench/v6jnls/bn694_bug_fixes.jnl
diff --git a/bench/bn695_bug_fixes.jnl b/bench/v6jnls/bn695_bug_fixes.jnl
similarity index 100%
rename from bench/bn695_bug_fixes.jnl
rename to bench/v6jnls/bn695_bug_fixes.jnl
diff --git a/bench/bn696_bug_fixes.jnl b/bench/v6jnls/bn696_bug_fixes.jnl
similarity index 100%
rename from bench/bn696_bug_fixes.jnl
rename to bench/v6jnls/bn696_bug_fixes.jnl
diff --git a/bench/bn697_bug_fixes.jnl b/bench/v6jnls/bn697_bug_fixes.jnl
similarity index 100%
rename from bench/bn697_bug_fixes.jnl
rename to bench/v6jnls/bn697_bug_fixes.jnl
diff --git a/bench/bn69_bug_fixes.jnl b/bench/v6jnls/bn69_bug_fixes.jnl
similarity index 100%
rename from bench/bn69_bug_fixes.jnl
rename to bench/v6jnls/bn69_bug_fixes.jnl
diff --git a/bench/bn_6d_lab_mode.jnl b/bench/v6jnls/bn_6d_lab_mode.jnl
similarity index 100%
rename from bench/bn_6d_lab_mode.jnl
rename to bench/v6jnls/bn_6d_lab_mode.jnl
diff --git a/bench/bn_DQ.jnl b/bench/v6jnls/bn_DQ.jnl
similarity index 91%
rename from bench/bn_DQ.jnl
rename to bench/v6jnls/bn_DQ.jnl
index bca8362..12fa6af 100644
--- a/bench/bn_DQ.jnl
+++ b/bench/v6jnls/bn_DQ.jnl
@@ -81,16 +81,16 @@ let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
 list a
 
 ! ======
-list    {SPAWN:"ls weird_name1.cdf","foobar"}
-let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list    {SPAWN:"ls data/weird_name1.cdf","foobar"}
+let a = {SPAWN:"ls data/weird_name1.cdf","foobar"}
 list a
 
-list    {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
-let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list    {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+let a = {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
 list a
 
-list    {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
-let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list    {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+let a = {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
 list a
 
 ! ======
@@ -163,13 +163,13 @@ DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
 SHOW ATTRIBUTE/ALL foobar
 
 ! ======
-SPAWN    "ls weird_name1.*"
-SPAWN _DQ_ls weird_name1.*_DQ_
+SPAWN    "ls data/weird_name1.*"
+SPAWN _DQ_ls data/weird_name1.*_DQ_
 
 ! ======
-LET a = {"first.nc", SPAWN:   "ls weird_name1.*"   ,"last.nc"}
+LET a = {"first.nc", SPAWN:   "ls data/weird_name1.*"   ,"last.nc"}
 LIST a
-LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LET a = {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
 LIST a
 
 ! =========================
diff --git a/bench/bn_DQ.sub b/bench/v6jnls/bn_DQ.sub
similarity index 100%
rename from bench/bn_DQ.sub
rename to bench/v6jnls/bn_DQ.sub
diff --git a/bench/bn_NaN_note.jnl b/bench/v6jnls/bn_NaN_note.jnl
similarity index 100%
rename from bench/bn_NaN_note.jnl
rename to bench/v6jnls/bn_NaN_note.jnl
diff --git a/bench/bn_aggregate_e.jnl b/bench/v6jnls/bn_aggregate_e.jnl
similarity index 100%
rename from bench/bn_aggregate_e.jnl
rename to bench/v6jnls/bn_aggregate_e.jnl
diff --git a/bench/bn_aggregate_f.jnl b/bench/v6jnls/bn_aggregate_f.jnl
similarity index 100%
rename from bench/bn_aggregate_f.jnl
rename to bench/v6jnls/bn_aggregate_f.jnl
diff --git a/bench/bn_aggregate_f.sub b/bench/v6jnls/bn_aggregate_f.sub
similarity index 100%
rename from bench/bn_aggregate_f.sub
rename to bench/v6jnls/bn_aggregate_f.sub
diff --git a/bench/bn_aggregate_t.jnl b/bench/v6jnls/bn_aggregate_t.jnl
similarity index 100%
rename from bench/bn_aggregate_t.jnl
rename to bench/v6jnls/bn_aggregate_t.jnl
diff --git a/bench/bn_aggregate_tef.jnl b/bench/v6jnls/bn_aggregate_tef.jnl
similarity index 100%
rename from bench/bn_aggregate_tef.jnl
rename to bench/v6jnls/bn_aggregate_tef.jnl
diff --git a/bench/bn_annotate.jnl b/bench/v6jnls/bn_annotate.jnl
similarity index 100%
rename from bench/bn_annotate.jnl
rename to bench/v6jnls/bn_annotate.jnl
diff --git a/bench/bn_append_dsg.jnl b/bench/v6jnls/bn_append_dsg.jnl
similarity index 96%
rename from bench/bn_append_dsg.jnl
rename to bench/v6jnls/bn_append_dsg.jnl
index d2fa37b..fca90a0 100644
--- a/bench/bn_append_dsg.jnl
+++ b/bench/v6jnls/bn_append_dsg.jnl
@@ -14,7 +14,7 @@
 ! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
 
 sp rm test_save_dsg.nc 
-sp cp test_save_dsg_in.nc test_save_dsg.nc 
+sp cp data/test_save_dsg_in.nc test_save_dsg.nc 
 
 use test_save_dsg.nc
 
diff --git a/bench/bn_attributes.jnl b/bench/v6jnls/bn_attributes.jnl
similarity index 99%
rename from bench/bn_attributes.jnl
rename to bench/v6jnls/bn_attributes.jnl
index b14c00e..45f4a70 100644
--- a/bench/bn_attributes.jnl
+++ b/bench/v6jnls/bn_attributes.jnl
@@ -523,7 +523,7 @@ go bn_reset
 
 use err491_attval.cdf
 sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
+sp ncdump -h data/err491_attval.cdf >> all_ncdump.out
 save/clobber/file=a.nc elev[i=3,j=2:4]
 sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
diff --git a/bench/bn_auto_tprec.jnl b/bench/v6jnls/bn_auto_tprec.jnl
similarity index 100%
rename from bench/bn_auto_tprec.jnl
rename to bench/v6jnls/bn_auto_tprec.jnl
diff --git a/bench/bn_auxiliary.jnl b/bench/v6jnls/bn_auxiliary.jnl
similarity index 100%
rename from bench/bn_auxiliary.jnl
rename to bench/v6jnls/bn_auxiliary.jnl
diff --git a/bench/bn_auxiliary.sub b/bench/v6jnls/bn_auxiliary.sub
similarity index 100%
rename from bench/bn_auxiliary.sub
rename to bench/v6jnls/bn_auxiliary.sub
diff --git a/bench/bn_axis_cf.jnl b/bench/v6jnls/bn_axis_cf.jnl
similarity index 100%
rename from bench/bn_axis_cf.jnl
rename to bench/v6jnls/bn_axis_cf.jnl
diff --git a/bench/bn_axis_dir_symbols.jnl b/bench/v6jnls/bn_axis_dir_symbols.jnl
similarity index 100%
rename from bench/bn_axis_dir_symbols.jnl
rename to bench/v6jnls/bn_axis_dir_symbols.jnl
diff --git a/bench/bn_axis_nonmonotonic.jnl b/bench/v6jnls/bn_axis_nonmonotonic.jnl
similarity index 100%
rename from bench/bn_axis_nonmonotonic.jnl
rename to bench/v6jnls/bn_axis_nonmonotonic.jnl
diff --git a/bench/bn_axis_outtype.jnl b/bench/v6jnls/bn_axis_outtype.jnl
similarity index 100%
rename from bench/bn_axis_outtype.jnl
rename to bench/v6jnls/bn_axis_outtype.jnl
diff --git a/bench/bn_axis_reversed_syms.jnl b/bench/v6jnls/bn_axis_reversed_syms.jnl
similarity index 100%
rename from bench/bn_axis_reversed_syms.jnl
rename to bench/v6jnls/bn_axis_reversed_syms.jnl
diff --git a/bench/bn_bad_axis_bounds.jnl b/bench/v6jnls/bn_bad_axis_bounds.jnl
similarity index 100%
rename from bench/bn_bad_axis_bounds.jnl
rename to bench/v6jnls/bn_bad_axis_bounds.jnl
diff --git a/bench/bn_bin_regrid.jnl b/bench/v6jnls/bn_bin_regrid.jnl
similarity index 100%
rename from bench/bn_bin_regrid.jnl
rename to bench/v6jnls/bn_bin_regrid.jnl
diff --git a/bench/bn_bin_regrid.sub b/bench/v6jnls/bn_bin_regrid.sub
similarity index 100%
rename from bench/bn_bin_regrid.sub
rename to bench/v6jnls/bn_bin_regrid.sub
diff --git a/bench/bn_bounds_defineax.jnl b/bench/v6jnls/bn_bounds_defineax.jnl
similarity index 100%
rename from bench/bn_bounds_defineax.jnl
rename to bench/v6jnls/bn_bounds_defineax.jnl
diff --git a/bench/bn_can_var_noerr.jnl b/bench/v6jnls/bn_can_var_noerr.jnl
similarity index 100%
rename from bench/bn_can_var_noerr.jnl
rename to bench/v6jnls/bn_can_var_noerr.jnl
diff --git a/bench/bn_cancel_upcase_uservar.jnl b/bench/v6jnls/bn_cancel_upcase_uservar.jnl
similarity index 100%
rename from bench/bn_cancel_upcase_uservar.jnl
rename to bench/v6jnls/bn_cancel_upcase_uservar.jnl
diff --git a/bench/bn_cat_string.jnl b/bench/v6jnls/bn_cat_string.jnl
similarity index 100%
rename from bench/bn_cat_string.jnl
rename to bench/v6jnls/bn_cat_string.jnl
diff --git a/bench/bn_cdf_errmsg.jnl b/bench/v6jnls/bn_cdf_errmsg.jnl
similarity index 100%
rename from bench/bn_cdf_errmsg.jnl
rename to bench/v6jnls/bn_cdf_errmsg.jnl
diff --git a/bench/bn_cdf_keepax.jnl b/bench/v6jnls/bn_cdf_keepax.jnl
similarity index 100%
rename from bench/bn_cdf_keepax.jnl
rename to bench/v6jnls/bn_cdf_keepax.jnl
diff --git a/bench/bn_cdf_keepax.sub1 b/bench/v6jnls/bn_cdf_keepax.sub1
similarity index 100%
rename from bench/bn_cdf_keepax.sub1
rename to bench/v6jnls/bn_cdf_keepax.sub1
diff --git a/bench/bn_cdf_keepax.sub2 b/bench/v6jnls/bn_cdf_keepax.sub2
similarity index 100%
rename from bench/bn_cdf_keepax.sub2
rename to bench/v6jnls/bn_cdf_keepax.sub2
diff --git a/bench/bn_cdf_keepax.sub3 b/bench/v6jnls/bn_cdf_keepax.sub3
similarity index 100%
rename from bench/bn_cdf_keepax.sub3
rename to bench/v6jnls/bn_cdf_keepax.sub3
diff --git a/bench/bn_cdf_keepax.sub4 b/bench/v6jnls/bn_cdf_keepax.sub4
similarity index 100%
rename from bench/bn_cdf_keepax.sub4
rename to bench/v6jnls/bn_cdf_keepax.sub4
diff --git a/bench/bn_cdf_reversed_keepax.sub b/bench/v6jnls/bn_cdf_reversed_keepax.sub
similarity index 100%
rename from bench/bn_cdf_reversed_keepax.sub
rename to bench/v6jnls/bn_cdf_reversed_keepax.sub
diff --git a/bench/bn_center_key_labels.jnl b/bench/v6jnls/bn_center_key_labels.jnl
similarity index 100%
rename from bench/bn_center_key_labels.jnl
rename to bench/v6jnls/bn_center_key_labels.jnl
diff --git a/bench/bn_climatology_attr.jnl b/bench/v6jnls/bn_climatology_attr.jnl
similarity index 100%
rename from bench/bn_climatology_attr.jnl
rename to bench/v6jnls/bn_climatology_attr.jnl
diff --git a/bench/bn_clock_syms.jnl b/bench/v6jnls/bn_clock_syms.jnl
similarity index 100%
rename from bench/bn_clock_syms.jnl
rename to bench/v6jnls/bn_clock_syms.jnl
diff --git a/bench/bn_conventions_history.jnl b/bench/v6jnls/bn_conventions_history.jnl
similarity index 86%
rename from bench/bn_conventions_history.jnl
rename to bench/v6jnls/bn_conventions_history.jnl
index 3d6e31c..678cf79 100644
--- a/bench/bn_conventions_history.jnl
+++ b/bench/v6jnls/bn_conventions_history.jnl
@@ -4,7 +4,7 @@
 ! 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
+sp cp data/conventions_history_in.nc conventions_history.nc
 use conventions_history
 !
 !  The existing global attributes
diff --git a/bench/bn_convolve.jnl b/bench/v6jnls/bn_convolve.jnl
similarity index 100%
rename from bench/bn_convolve.jnl
rename to bench/v6jnls/bn_convolve.jnl
diff --git a/bench/bn_coordvars_atts.jnl b/bench/v6jnls/bn_coordvars_atts.jnl
similarity index 100%
rename from bench/bn_coordvars_atts.jnl
rename to bench/v6jnls/bn_coordvars_atts.jnl
diff --git a/bench/bn_dataset_qualifier.jnl b/bench/v6jnls/bn_dataset_qualifier.jnl
similarity index 100%
rename from bench/bn_dataset_qualifier.jnl
rename to bench/v6jnls/bn_dataset_qualifier.jnl
diff --git a/bench/bn_date1900_array.jnl b/bench/v6jnls/bn_date1900_array.jnl
similarity index 100%
rename from bench/bn_date1900_array.jnl
rename to bench/v6jnls/bn_date1900_array.jnl
diff --git a/bench/bn_deg_min.jnl b/bench/v6jnls/bn_deg_min.jnl
similarity index 100%
rename from bench/bn_deg_min.jnl
rename to bench/v6jnls/bn_deg_min.jnl
diff --git a/bench/bn_descr_4digit.jnl b/bench/v6jnls/bn_descr_4digit.jnl
similarity index 100%
rename from bench/bn_descr_4digit.jnl
rename to bench/v6jnls/bn_descr_4digit.jnl
diff --git a/bench/bn_descriptor_mc.jnl b/bench/v6jnls/bn_descriptor_mc.jnl
similarity index 100%
rename from bench/bn_descriptor_mc.jnl
rename to bench/v6jnls/bn_descriptor_mc.jnl
diff --git a/bench/bn_direction_fcns_6d.jnl b/bench/v6jnls/bn_direction_fcns_6d.jnl
similarity index 100%
rename from bench/bn_direction_fcns_6d.jnl
rename to bench/v6jnls/bn_direction_fcns_6d.jnl
diff --git a/bench/bn_dp_readscale.jnl b/bench/v6jnls/bn_dp_readscale.jnl
similarity index 100%
rename from bench/bn_dp_readscale.jnl
rename to bench/v6jnls/bn_dp_readscale.jnl
diff --git a/bench/bn_dsg_e_x.jnl b/bench/v6jnls/bn_dsg_e_x.jnl
similarity index 100%
rename from bench/bn_dsg_e_x.jnl
rename to bench/v6jnls/bn_dsg_e_x.jnl
diff --git a/bench/bn_element_functions.jnl b/bench/v6jnls/bn_element_functions.jnl
similarity index 100%
rename from bench/bn_element_functions.jnl
rename to bench/v6jnls/bn_element_functions.jnl
diff --git a/bench/bn_enter_exit_GO.jnl b/bench/v6jnls/bn_enter_exit_GO.jnl
similarity index 100%
rename from bench/bn_enter_exit_GO.jnl
rename to bench/v6jnls/bn_enter_exit_GO.jnl
diff --git a/bench/bn_eof_simple.jnl b/bench/v6jnls/bn_eof_simple.jnl
similarity index 73%
rename from bench/bn_eof_simple.jnl
rename to bench/v6jnls/bn_eof_simple.jnl
index fbc83e4..507893c 100644
--- a/bench/bn_eof_simple.jnl
+++ b/bench/v6jnls/bn_eof_simple.jnl
@@ -4,7 +4,7 @@
 ! 7/2012 
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
+! 11/2017 - still try to test old eof functions, if they are re-implemented
 
 ! Define two locations.
 def axis /X=1:2:1 xaxis
@@ -39,12 +39,30 @@ show func eofsvd_space
 ! This is if the EOF functions are in units of the original data,
 ! thus the eigenvectors times the square-root of the eigenvalue.
 ! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
-
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+ 
 show func eofsvd_tfunc
 ! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.  
 ! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 ! The sum over all significant EOFs of the outer product of 
 ! EOF(i) and TAF(i) should return the zero-time-meaned data 
@@ -63,51 +81,49 @@ let spacetime = if (i eq 1) then cosT else sinT + 1
 let space12 = if i ne 3 then spacetime
 
 list eofsvd_stat(space12)
-list eofsvd_space(space12)
-list eofsvd_tfunc(space12)
 
+let eofs = eofsvd_space(space12[I=1:3])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+let tafs = eofsvd_tfunc(space12[I=1:3])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 ! If there are no complete time series, the functions should bail with an error
 
 let spacegap = if L ne 2 then spacetime
 
 set mode ignore
+
 list eofsvd_stat(spacegap)
 list eofsvd_space(spacegap)
 list eofsvd_tfunc(spacegap)
 
-! clean-up
 set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
 
-exit/script
 ! -----------------------------------------------
 ! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
 
+set mode ignore
 
-! Define two locations.
 def axis /X=1:2:1 xaxis
-def axis /Y=1:1:1 yaxis
-
-! Thinking of the time axis as number of months.
-def axis /T=0.0:59.75:0.25 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
-
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
-
-! Put a standing wave at each location.
-! The two waves are orthonormal and zero-mean over time. 
 let spacetime = if (i eq 1) then cosT else sinT + 1
-show grid spacetime
 
 show func eof_stat
 ! Run each of the eof functions and show the results.
@@ -124,12 +140,32 @@ show func eof_space
 ! This is if the EOF functions are in units of the original data,
 ! thus the eigenvectors times the square-root of the eigenvalue.
 ! EOF vectors are always orthogonal to each other.
-list eof_space(spacetime, 1.0)
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 show func eof_tfunc
 ! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.  
 ! TAF vectors are always orthogonal to each other.
-list eof_tfunc(spacetime, 1.0)
+let tafs = eof_tfunc(spacetime[I=1:2], 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+set mode/last ignore
 
 ! The sum over all significant EOFs of the outer product of 
 ! EOF(i) and TAF(i) should return the zero-time-meaned data 
@@ -138,10 +174,6 @@ list eof_tfunc(spacetime, 1.0)
 ! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
 
 ! clean-up
-can var spacetime
 set grid abstract
+can var /all
 can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
diff --git a/bench/bn_eof_simple2.jnl b/bench/v6jnls/bn_eof_simple2.jnl
similarity index 71%
rename from bench/bn_eof_simple2.jnl
rename to bench/v6jnls/bn_eof_simple2.jnl
index 233e1a5..c93f2be 100644
--- a/bench/bn_eof_simple2.jnl
+++ b/bench/v6jnls/bn_eof_simple2.jnl
@@ -4,6 +4,7 @@
 ! 7/2012 
 ! In version 6.8 (double precision), the old eof functions are not available
 ! Run the script calling eofsvd functions and exit, leaving old eof function calls.
+! 11/2017 - still try to test old eof functions, if they are re-implemented
 
 ! Define four locations.
 def axis /X=1:2:1 xaxis
@@ -43,9 +44,16 @@ show func eofsvd_space
 ! The norm^2 of an EOF should be the eigenvalue.
 ! The two EOFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 show func eofsvd_tfunc
 ! Ideally:
@@ -54,9 +62,16 @@ show func eofsvd_tfunc
 ! The norm^2 of a TAF should be the number of time values.
 ! The two TAFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 ! Explanation:
 ! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -66,40 +81,11 @@ list tafs[I=1:2]
 !             = (0.0, cosT * sinT, cosT * sinT, 0.0)
 ! Adding these three gives the original data
 
-! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-exit/script
 ! -----------------------------------------------
 ! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
 
-! Define four locations.
-def axis /X=1:2:1 xaxis
-def axis /Y=1:2:1 yaxis
-
-! Thinking of the time axis as number of months.
-def axis /T=0.0:23.9:0.1 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
-
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
-
-! Put a products of the standing waves at each location.
-let spacetime12 = if (i eq 1) and (j eq 1) then cost * cost else cost * sint + 1
-let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime12
-let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
-show grid spacetime
+set mode ignore
 
 show func eof_stat
 ! Two are of equal significance with eigenvalues of 0.25.
@@ -120,9 +106,16 @@ show func eof_space
 ! The norm^2 of an EOF should be the eigenvalue.
 ! The two EOFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
-let eofs = eof_space(spacetime, 1.0)
-! T axis of eof_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 show func eof_tfunc
 ! Ideally:
@@ -132,27 +125,27 @@ show func eof_tfunc
 ! The two TAFs should be orthogonal to each other.
 ! Rotation (mixing) of these two may occur.
 let tafs = eof_tfunc(spacetime, 1.0)
-! X axis of eof_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
 
 ! Explanation:
 ! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
 ! EOF1 * TAF1 = (0.5 * cos2T,  0.0, 0.0, -0.5 * cos2T)
 !             = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
-! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
+	! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
 !             = (0.0, cosT * sinT, cosT * sinT, 0.0)
 ! Adding these three gives the original data
 
-! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
+set mode/last ignore
+
+! clean-up 
 set grid abstract
+can var /all
 can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-
diff --git a/bench/bn_expressions_6d.jnl b/bench/v6jnls/bn_expressions_6d.jnl
similarity index 100%
rename from bench/bn_expressions_6d.jnl
rename to bench/v6jnls/bn_expressions_6d.jnl
diff --git a/bench/bn_f_tax_fcns.jnl b/bench/v6jnls/bn_f_tax_fcns.jnl
similarity index 100%
rename from bench/bn_f_tax_fcns.jnl
rename to bench/v6jnls/bn_f_tax_fcns.jnl
diff --git a/bench/bn_fifty_files.jnl b/bench/v6jnls/bn_fifty_files.jnl
similarity index 100%
rename from bench/bn_fifty_files.jnl
rename to bench/v6jnls/bn_fifty_files.jnl
diff --git a/bench/bn_floatstr.jnl b/bench/v6jnls/bn_floatstr.jnl
similarity index 100%
rename from bench/bn_floatstr.jnl
rename to bench/v6jnls/bn_floatstr.jnl
diff --git a/bench/bn_floatstr_extended.jnl b/bench/v6jnls/bn_floatstr_extended.jnl
similarity index 100%
rename from bench/bn_floatstr_extended.jnl
rename to bench/v6jnls/bn_floatstr_extended.jnl
diff --git a/bench/bn_fmrc.jnl b/bench/v6jnls/bn_fmrc.jnl
similarity index 100%
rename from bench/bn_fmrc.jnl
rename to bench/v6jnls/bn_fmrc.jnl
diff --git a/bench/bn_global_atts.jnl b/bench/v6jnls/bn_global_atts.jnl
similarity index 87%
rename from bench/bn_global_atts.jnl
rename to bench/v6jnls/bn_global_atts.jnl
index e5c9d70..73b44b6 100644
--- a/bench/bn_global_atts.jnl
+++ b/bench/v6jnls/bn_global_atts.jnl
@@ -3,7 +3,7 @@
 
 cancel mode upcase
 
-sp cp global.nc  global_copy.nc
+sp cp data/global.nc  global_copy.nc
 use global_copy.nc
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
@@ -11,13 +11,13 @@ define attribute/output lon360.ioos_category = "Location"
 define attribute/output lon360.standard_name = "Longitude"
 define attribute/output lon360.history = "added to test_save_dsg.nc"
 save/quiet/append/file=global_copy.nc lon360
-sp ncdump -h global.nc
+sp ncdump -h data/global.nc
 sp ncdump -h global_copy.nc
 
 ! 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
+sp ncgen -o anew_global.nc data/anew_global.cdl
 use anew_global.nc
 sh att .
 let var = 8
diff --git a/bench/bn_grads_z.jnl b/bench/v6jnls/bn_grads_z.jnl
similarity index 100%
rename from bench/bn_grads_z.jnl
rename to bench/v6jnls/bn_grads_z.jnl
diff --git a/bench/bn_ifv.jnl b/bench/v6jnls/bn_ifv.jnl
similarity index 100%
rename from bench/bn_ifv.jnl
rename to bench/v6jnls/bn_ifv.jnl
diff --git a/bench/bn_interpolate_6d.jnl b/bench/v6jnls/bn_interpolate_6d.jnl
similarity index 100%
rename from bench/bn_interpolate_6d.jnl
rename to bench/v6jnls/bn_interpolate_6d.jnl
diff --git a/bench/bn_interpolate_6d.sub b/bench/v6jnls/bn_interpolate_6d.sub
similarity index 100%
rename from bench/bn_interpolate_6d.sub
rename to bench/v6jnls/bn_interpolate_6d.sub
diff --git a/bench/bn_isdepth.jnl b/bench/v6jnls/bn_isdepth.jnl
similarity index 100%
rename from bench/bn_isdepth.jnl
rename to bench/v6jnls/bn_isdepth.jnl
diff --git a/bench/bn_keep_axisnames.jnl b/bench/v6jnls/bn_keep_axisnames.jnl
similarity index 100%
rename from bench/bn_keep_axisnames.jnl
rename to bench/v6jnls/bn_keep_axisnames.jnl
diff --git a/bench/bn_key_label_minmax.jnl b/bench/v6jnls/bn_key_label_minmax.jnl
similarity index 100%
rename from bench/bn_key_label_minmax.jnl
rename to bench/v6jnls/bn_key_label_minmax.jnl
diff --git a/bench/bn_labnum_calendar.jnl b/bench/v6jnls/bn_labnum_calendar.jnl
similarity index 100%
rename from bench/bn_labnum_calendar.jnl
rename to bench/v6jnls/bn_labnum_calendar.jnl
diff --git a/bench/bn_last_error.jnl b/bench/v6jnls/bn_last_error.jnl
similarity index 100%
rename from bench/bn_last_error.jnl
rename to bench/v6jnls/bn_last_error.jnl
diff --git a/bench/bn_last_go_file.jnl b/bench/v6jnls/bn_last_go_file.jnl
similarity index 100%
rename from bench/bn_last_go_file.jnl
rename to bench/v6jnls/bn_last_go_file.jnl
diff --git a/bench/bn_legend_labels.jnl b/bench/v6jnls/bn_legend_labels.jnl
similarity index 100%
rename from bench/bn_legend_labels.jnl
rename to bench/v6jnls/bn_legend_labels.jnl
diff --git a/bench/bn_let_remote.jnl b/bench/v6jnls/bn_let_remote.jnl
similarity index 100%
rename from bench/bn_let_remote.jnl
rename to bench/v6jnls/bn_let_remote.jnl
diff --git a/bench/bn_letd_attributes.jnl b/bench/v6jnls/bn_letd_attributes.jnl
similarity index 100%
rename from bench/bn_letd_attributes.jnl
rename to bench/v6jnls/bn_letd_attributes.jnl
diff --git a/bench/bn_linecolors.jnl b/bench/v6jnls/bn_linecolors.jnl
similarity index 100%
rename from bench/bn_linecolors.jnl
rename to bench/v6jnls/bn_linecolors.jnl
diff --git a/bench/bn_list_clim_axes.jnl b/bench/v6jnls/bn_list_clim_axes.jnl
similarity index 100%
rename from bench/bn_list_clim_axes.jnl
rename to bench/v6jnls/bn_list_clim_axes.jnl
diff --git a/bench/bn_lon_lat_time_string.jnl b/bench/v6jnls/bn_lon_lat_time_string.jnl
similarity index 100%
rename from bench/bn_lon_lat_time_string.jnl
rename to bench/v6jnls/bn_lon_lat_time_string.jnl
diff --git a/bench/bn_long_grid_names.jnl b/bench/v6jnls/bn_long_grid_names.jnl
similarity index 100%
rename from bench/bn_long_grid_names.jnl
rename to bench/v6jnls/bn_long_grid_names.jnl
diff --git a/bench/bn_long_lists.jnl b/bench/v6jnls/bn_long_lists.jnl
similarity index 100%
rename from bench/bn_long_lists.jnl
rename to bench/v6jnls/bn_long_lists.jnl
diff --git a/bench/bn_long_revision_num.jnl b/bench/v6jnls/bn_long_revision_num.jnl
similarity index 100%
rename from bench/bn_long_revision_num.jnl
rename to bench/v6jnls/bn_long_revision_num.jnl
diff --git a/bench/bn_long_symnames.jnl b/bench/v6jnls/bn_long_symnames.jnl
similarity index 100%
rename from bench/bn_long_symnames.jnl
rename to bench/v6jnls/bn_long_symnames.jnl
diff --git a/bench/bn_lsl_lowpass.jnl b/bench/v6jnls/bn_lsl_lowpass.jnl
similarity index 100%
rename from bench/bn_lsl_lowpass.jnl
rename to bench/v6jnls/bn_lsl_lowpass.jnl
diff --git a/bench/bn_median.jnl b/bench/v6jnls/bn_median.jnl
similarity index 100%
rename from bench/bn_median.jnl
rename to bench/v6jnls/bn_median.jnl
diff --git a/bench/bn_memory_symbol.jnl b/bench/v6jnls/bn_memory_symbol.jnl
similarity index 100%
rename from bench/bn_memory_symbol.jnl
rename to bench/v6jnls/bn_memory_symbol.jnl
diff --git a/bench/bn_min_max_smoothers.jnl b/bench/v6jnls/bn_min_max_smoothers.jnl
similarity index 100%
rename from bench/bn_min_max_smoothers.jnl
rename to bench/v6jnls/bn_min_max_smoothers.jnl
diff --git a/bench/bn_mode_nlevels.jnl b/bench/v6jnls/bn_mode_nlevels.jnl
similarity index 100%
rename from bench/bn_mode_nlevels.jnl
rename to bench/v6jnls/bn_mode_nlevels.jnl
diff --git a/bench/bn_mode_nodata_lab.jnl b/bench/v6jnls/bn_mode_nodata_lab.jnl
similarity index 100%
rename from bench/bn_mode_nodata_lab.jnl
rename to bench/v6jnls/bn_mode_nodata_lab.jnl
diff --git a/bench/bn_modnbd.jnl b/bench/v6jnls/bn_modnbd.jnl
similarity index 100%
rename from bench/bn_modnbd.jnl
rename to bench/v6jnls/bn_modnbd.jnl
diff --git a/bench/bn_multi_decade.jnl b/bench/v6jnls/bn_multi_decade.jnl
similarity index 100%
rename from bench/bn_multi_decade.jnl
rename to bench/v6jnls/bn_multi_decade.jnl
diff --git a/bench/bn_n_open_dsets_sym.jnl b/bench/v6jnls/bn_n_open_dsets_sym.jnl
similarity index 100%
rename from bench/bn_n_open_dsets_sym.jnl
rename to bench/v6jnls/bn_n_open_dsets_sym.jnl
diff --git a/bench/bn_nco_append.jnl b/bench/v6jnls/bn_nco_append.jnl
similarity index 100%
rename from bench/bn_nco_append.jnl
rename to bench/v6jnls/bn_nco_append.jnl
diff --git a/bench/bn_netcdf4.jnl b/bench/v6jnls/bn_netcdf4.jnl
similarity index 100%
rename from bench/bn_netcdf4.jnl
rename to bench/v6jnls/bn_netcdf4.jnl
diff --git a/bench/bn_no_valid_on_plot.jnl b/bench/v6jnls/bn_no_valid_on_plot.jnl
similarity index 100%
rename from bench/bn_no_valid_on_plot.jnl
rename to bench/v6jnls/bn_no_valid_on_plot.jnl
diff --git a/bench/bn_nobounds.jnl b/bench/v6jnls/bn_nobounds.jnl
similarity index 100%
rename from bench/bn_nobounds.jnl
rename to bench/v6jnls/bn_nobounds.jnl
diff --git a/bench/bn_outtype.jnl b/bench/v6jnls/bn_outtype.jnl
similarity index 100%
rename from bench/bn_outtype.jnl
rename to bench/v6jnls/bn_outtype.jnl
diff --git a/bench/bn_permute_ascii.jnl b/bench/v6jnls/bn_permute_ascii.jnl
similarity index 100%
rename from bench/bn_permute_ascii.jnl
rename to bench/v6jnls/bn_permute_ascii.jnl
diff --git a/bench/bn_plot_along.jnl b/bench/v6jnls/bn_plot_along.jnl
similarity index 100%
rename from bench/bn_plot_along.jnl
rename to bench/v6jnls/bn_plot_along.jnl
diff --git a/bench/bn_plot_color_only.jnl b/bench/v6jnls/bn_plot_color_only.jnl
similarity index 100%
rename from bench/bn_plot_color_only.jnl
rename to bench/v6jnls/bn_plot_color_only.jnl
diff --git a/bench/bn_plot_decimate.jnl b/bench/v6jnls/bn_plot_decimate.jnl
similarity index 100%
rename from bench/bn_plot_decimate.jnl
rename to bench/v6jnls/bn_plot_decimate.jnl
diff --git a/bench/bn_plot_ribbon_gaploc.jnl b/bench/v6jnls/bn_plot_ribbon_gaploc.jnl
similarity index 100%
rename from bench/bn_plot_ribbon_gaploc.jnl
rename to bench/v6jnls/bn_plot_ribbon_gaploc.jnl
diff --git a/bench/bn_polygon_log.jnl b/bench/v6jnls/bn_polygon_log.jnl
similarity index 100%
rename from bench/bn_polygon_log.jnl
rename to bench/v6jnls/bn_polygon_log.jnl
diff --git a/bench/bn_proleptic_gregorian_calendar.jnl b/bench/v6jnls/bn_proleptic_gregorian_calendar.jnl
similarity index 100%
rename from bench/bn_proleptic_gregorian_calendar.jnl
rename to bench/v6jnls/bn_proleptic_gregorian_calendar.jnl
diff --git a/bench/bn_randu2_randn2.jnl b/bench/v6jnls/bn_randu2_randn2.jnl
similarity index 100%
rename from bench/bn_randu2_randn2.jnl
rename to bench/v6jnls/bn_randu2_randn2.jnl
diff --git a/bench/bn_regrid_6d.jnl b/bench/v6jnls/bn_regrid_6d.jnl
similarity index 100%
rename from bench/bn_regrid_6d.jnl
rename to bench/v6jnls/bn_regrid_6d.jnl
diff --git a/bench/bn_regrid_transforms_6d.jnl b/bench/v6jnls/bn_regrid_transforms_6d.jnl
similarity index 100%
rename from bench/bn_regrid_transforms_6d.jnl
rename to bench/v6jnls/bn_regrid_transforms_6d.jnl
diff --git a/bench/bn_repeated_coords.jnl b/bench/v6jnls/bn_repeated_coords.jnl
similarity index 100%
rename from bench/bn_repeated_coords.jnl
rename to bench/v6jnls/bn_repeated_coords.jnl
diff --git a/bench/bn_repl_9999999.jnl b/bench/v6jnls/bn_repl_9999999.jnl
similarity index 100%
rename from bench/bn_repl_9999999.jnl
rename to bench/v6jnls/bn_repl_9999999.jnl
diff --git a/bench/bn_return_defined.jnl b/bench/v6jnls/bn_return_defined.jnl
similarity index 100%
rename from bench/bn_return_defined.jnl
rename to bench/v6jnls/bn_return_defined.jnl
diff --git a/bench/bn_return_xmod_tmod.jnl b/bench/v6jnls/bn_return_xmod_tmod.jnl
similarity index 100%
rename from bench/bn_return_xmod_tmod.jnl
rename to bench/v6jnls/bn_return_xmod_tmod.jnl
diff --git a/bench/bn_ribbon_plot.jnl b/bench/v6jnls/bn_ribbon_plot.jnl
similarity index 100%
rename from bench/bn_ribbon_plot.jnl
rename to bench/v6jnls/bn_ribbon_plot.jnl
diff --git a/bench/bn_samplexyt.jnl b/bench/v6jnls/bn_samplexyt.jnl
similarity index 100%
rename from bench/bn_samplexyt.jnl
rename to bench/v6jnls/bn_samplexyt.jnl
diff --git a/bench/bn_save_justdim.jnl b/bench/v6jnls/bn_save_justdim.jnl
similarity index 100%
rename from bench/bn_save_justdim.jnl
rename to bench/v6jnls/bn_save_justdim.jnl
diff --git a/bench/bn_scat2grid_bin.jnl b/bench/v6jnls/bn_scat2grid_bin.jnl
similarity index 100%
rename from bench/bn_scat2grid_bin.jnl
rename to bench/v6jnls/bn_scat2grid_bin.jnl
diff --git a/bench/bn_set_axis_name.jnl b/bench/v6jnls/bn_set_axis_name.jnl
similarity index 100%
rename from bench/bn_set_axis_name.jnl
rename to bench/v6jnls/bn_set_axis_name.jnl
diff --git a/bench/bn_set_axis_regular.jnl b/bench/v6jnls/bn_set_axis_regular.jnl
similarity index 100%
rename from bench/bn_set_axis_regular.jnl
rename to bench/v6jnls/bn_set_axis_regular.jnl
diff --git a/bench/bn_set_cancel_redirect.jnl b/bench/v6jnls/bn_set_cancel_redirect.jnl
similarity index 100%
rename from bench/bn_set_cancel_redirect.jnl
rename to bench/v6jnls/bn_set_cancel_redirect.jnl
diff --git a/bench/bn_set_strides.jnl b/bench/v6jnls/bn_set_strides.jnl
similarity index 96%
rename from bench/bn_set_strides.jnl
rename to bench/v6jnls/bn_set_strides.jnl
index 39c2060..bbe925e 100644
--- a/bench/bn_set_strides.jnl
+++ b/bench/v6jnls/bn_set_strides.jnl
@@ -7,7 +7,7 @@
 !            unrelated axes already defined, which get in the way of 
 !            seeing the desired output.
 
-set mode ignore_error
+!set mode ignore_error
 
 !..............1. ignore STRIDE = 1                             
 use coads_climatology
@@ -23,8 +23,10 @@ use coads_climatology
 set axis/stride=2/offset=1 `sst, return=xaxis`
 show axis `sst,return=xaxis`
 !can't stride it again
+set mode ignore_error
 set axis/stride=2/offset=1 `sst, return=xaxis`
 show axis `sst,return=xaxis`
+set mode/last ignore
 cancel data/all
 
 !..............3. only set STRIDE                                 
@@ -51,13 +53,18 @@ cancel data/all
 use coads_climatology
 set axis/offset=1 `sst, return=xaxis`
 show axis `sst,return=xaxis`
+
+set mode ignore  
 cancel axis/stride `sst,return=xaxis`
+set mode/last ignore
 cancel data/all
 
 
 !.............5. OFFSET .LE. STRIDE
 use coads_climatology
+set mode ignore  
 set axis/stride=2/offset=4 `sst, return=xaxis`
+set mode/last ignore
 cancel data/all
 
 !.............6. SHOW GRID/DYNAMIC          
@@ -68,7 +75,10 @@ cancel data/all
 
 !.............7. cancel stride on a non-strided axis
 use coads_climatology
+set mode ignore  
 cancel axis/stride `sst,return=xaxis`
+set mode/last ignore
+
 cancel data/all
 
 !.............8. striding on a modulo axis
@@ -133,6 +143,7 @@ can data/all
 ! --- 10.2 stride on a reversed axis -- YAXIS
 use/order=x-yt coads_climatology
 list/x=180/l=5 sst[j=1:30]
+
 set axis/stride=5/offset=3 `sst,return=yaxis`
 list/x=180/l=5  sst
 list/x=180/l=5 sst[j=3:14:2]
diff --git a/bench/bn_set_var_name.jnl b/bench/v6jnls/bn_set_var_name.jnl
similarity index 100%
rename from bench/bn_set_var_name.jnl
rename to bench/v6jnls/bn_set_var_name.jnl
diff --git a/bench/bn_shade_trim.jnl b/bench/v6jnls/bn_shade_trim.jnl
similarity index 100%
rename from bench/bn_shade_trim.jnl
rename to bench/v6jnls/bn_shade_trim.jnl
diff --git a/bench/bn_short.sub b/bench/v6jnls/bn_short.sub
similarity index 100%
rename from bench/bn_short.sub
rename to bench/v6jnls/bn_short.sub
diff --git a/bench/bn_shortgo.jnl b/bench/v6jnls/bn_shortgo.jnl
similarity index 100%
rename from bench/bn_shortgo.jnl
rename to bench/v6jnls/bn_shortgo.jnl
diff --git a/bench/bn_shortgo2.jnl b/bench/v6jnls/bn_shortgo2.jnl
similarity index 100%
rename from bench/bn_shortgo2.jnl
rename to bench/v6jnls/bn_shortgo2.jnl
diff --git a/bench/bn_show_commands.jnl b/bench/v6jnls/bn_show_commands.jnl
similarity index 100%
rename from bench/bn_show_commands.jnl
rename to bench/v6jnls/bn_show_commands.jnl
diff --git a/bench/bn_show_noupcase.jnl b/bench/v6jnls/bn_show_noupcase.jnl
similarity index 100%
rename from bench/bn_show_noupcase.jnl
rename to bench/v6jnls/bn_show_noupcase.jnl
diff --git a/bench/bn_show_outfile.jnl b/bench/v6jnls/bn_show_outfile.jnl
similarity index 100%
rename from bench/bn_show_outfile.jnl
rename to bench/v6jnls/bn_show_outfile.jnl
diff --git a/bench/bn_show_uvar_grid.jnl b/bench/v6jnls/bn_show_uvar_grid.jnl
similarity index 100%
rename from bench/bn_show_uvar_grid.jnl
rename to bench/v6jnls/bn_show_uvar_grid.jnl
diff --git a/bench/bn_show_xml_file.jnl b/bench/v6jnls/bn_show_xml_file.jnl
similarity index 100%
rename from bench/bn_show_xml_file.jnl
rename to bench/v6jnls/bn_show_xml_file.jnl
diff --git a/bench/bn_single_colorlev.jnl b/bench/v6jnls/bn_single_colorlev.jnl
similarity index 100%
rename from bench/bn_single_colorlev.jnl
rename to bench/v6jnls/bn_single_colorlev.jnl
diff --git a/bench/bn_sort_strings.jnl b/bench/v6jnls/bn_sort_strings.jnl
similarity index 100%
rename from bench/bn_sort_strings.jnl
rename to bench/v6jnls/bn_sort_strings.jnl
diff --git a/bench/bn_spawn_size.jnl b/bench/v6jnls/bn_spawn_size.jnl
similarity index 100%
rename from bench/bn_spawn_size.jnl
rename to bench/v6jnls/bn_spawn_size.jnl
diff --git a/bench/bn_speedtest.jnl b/bench/v6jnls/bn_speedtest.jnl
similarity index 100%
rename from bench/bn_speedtest.jnl
rename to bench/v6jnls/bn_speedtest.jnl
diff --git a/bench/bn_stddev.jnl b/bench/v6jnls/bn_stddev.jnl
similarity index 100%
rename from bench/bn_stddev.jnl
rename to bench/v6jnls/bn_stddev.jnl
diff --git a/bench/bn_strdim.jnl b/bench/v6jnls/bn_strdim.jnl
similarity index 100%
rename from bench/bn_strdim.jnl
rename to bench/v6jnls/bn_strdim.jnl
diff --git a/bench/bn_string_ngd_nbd.jnl b/bench/v6jnls/bn_string_ngd_nbd.jnl
similarity index 100%
rename from bench/bn_string_ngd_nbd.jnl
rename to bench/v6jnls/bn_string_ngd_nbd.jnl
diff --git a/bench/bn_syntax_6d.jnl b/bench/v6jnls/bn_syntax_6d.jnl
similarity index 100%
rename from bench/bn_syntax_6d.jnl
rename to bench/v6jnls/bn_syntax_6d.jnl
diff --git a/bench/bn_tab_comma_multivar.jnl b/bench/v6jnls/bn_tab_comma_multivar.jnl
similarity index 100%
rename from bench/bn_tab_comma_multivar.jnl
rename to bench/v6jnls/bn_tab_comma_multivar.jnl
diff --git a/bench/bn_tax_tstep.jnl b/bench/v6jnls/bn_tax_tstep.jnl
similarity index 100%
rename from bench/bn_tax_tstep.jnl
rename to bench/v6jnls/bn_tax_tstep.jnl
diff --git a/bench/bn_test_opendap.jnl b/bench/v6jnls/bn_test_opendap.jnl
similarity index 100%
rename from bench/bn_test_opendap.jnl
rename to bench/v6jnls/bn_test_opendap.jnl
diff --git a/bench/bn_time2d.jnl b/bench/v6jnls/bn_time2d.jnl
similarity index 100%
rename from bench/bn_time2d.jnl
rename to bench/v6jnls/bn_time2d.jnl
diff --git a/bench/bn_time_short_axes.jnl b/bench/v6jnls/bn_time_short_axes.jnl
similarity index 100%
rename from bench/bn_time_short_axes.jnl
rename to bench/v6jnls/bn_time_short_axes.jnl
diff --git a/bench/bn_transforms.jnl b/bench/v6jnls/bn_transforms.jnl
similarity index 100%
rename from bench/bn_transforms.jnl
rename to bench/v6jnls/bn_transforms.jnl
diff --git a/bench/bn_txtype_dmy.jnl b/bench/v6jnls/bn_txtype_dmy.jnl
similarity index 100%
rename from bench/bn_txtype_dmy.jnl
rename to bench/v6jnls/bn_txtype_dmy.jnl
diff --git a/bench/bn_unquoted_args.jnl b/bench/v6jnls/bn_unquoted_args.jnl
similarity index 100%
rename from bench/bn_unquoted_args.jnl
rename to bench/v6jnls/bn_unquoted_args.jnl
diff --git a/bench/bn_var_hist_levels.jnl b/bench/v6jnls/bn_var_hist_levels.jnl
similarity index 100%
rename from bench/bn_var_hist_levels.jnl
rename to bench/v6jnls/bn_var_hist_levels.jnl
diff --git a/bench/bn_varcontext_attributes.jnl b/bench/v6jnls/bn_varcontext_attributes.jnl
similarity index 100%
rename from bench/bn_varcontext_attributes.jnl
rename to bench/v6jnls/bn_varcontext_attributes.jnl
diff --git a/bench/bn_variance.jnl b/bench/v6jnls/bn_variance.jnl
similarity index 100%
rename from bench/bn_variance.jnl
rename to bench/v6jnls/bn_variance.jnl
diff --git a/bench/bn_variance_large.jnl b/bench/v6jnls/bn_variance_large.jnl
similarity index 100%
rename from bench/bn_variance_large.jnl
rename to bench/v6jnls/bn_variance_large.jnl
diff --git a/bench/bn_vec_mod.jnl b/bench/v6jnls/bn_vec_mod.jnl
similarity index 100%
rename from bench/bn_vec_mod.jnl
rename to bench/v6jnls/bn_vec_mod.jnl
diff --git a/bench/bn_vector_symbols.jnl b/bench/v6jnls/bn_vector_symbols.jnl
similarity index 100%
rename from bench/bn_vector_symbols.jnl
rename to bench/v6jnls/bn_vector_symbols.jnl
diff --git a/bench/bn_vtree.jnl b/bench/v6jnls/bn_vtree.jnl
similarity index 100%
rename from bench/bn_vtree.jnl
rename to bench/v6jnls/bn_vtree.jnl
diff --git a/bench/bn_vtree.sub b/bench/v6jnls/bn_vtree.sub
similarity index 100%
rename from bench/bn_vtree.sub
rename to bench/v6jnls/bn_vtree.sub
diff --git a/bench/bn_vtree_outfile.jnl b/bench/v6jnls/bn_vtree_outfile.jnl
similarity index 100%
rename from bench/bn_vtree_outfile.jnl
rename to bench/v6jnls/bn_vtree_outfile.jnl
diff --git a/bench/bn_vtree_outfile.sub b/bench/v6jnls/bn_vtree_outfile.sub
similarity index 100%
rename from bench/bn_vtree_outfile.sub
rename to bench/v6jnls/bn_vtree_outfile.sub
diff --git a/bench/bn_vtree_regrid.jnl b/bench/v6jnls/bn_vtree_regrid.jnl
similarity index 100%
rename from bench/bn_vtree_regrid.jnl
rename to bench/v6jnls/bn_vtree_regrid.jnl
diff --git a/bench/bn_wgt_transform.jnl b/bench/v6jnls/bn_wgt_transform.jnl
similarity index 100%
rename from bench/bn_wgt_transform.jnl
rename to bench/v6jnls/bn_wgt_transform.jnl
diff --git a/bench/bn_window_title.jnl b/bench/v6jnls/bn_window_title.jnl
similarity index 100%
rename from bench/bn_window_title.jnl
rename to bench/v6jnls/bn_window_title.jnl
diff --git a/bench/bn_write_integer_att.jnl b/bench/v6jnls/bn_write_integer_att.jnl
similarity index 100%
rename from bench/bn_write_integer_att.jnl
rename to bench/v6jnls/bn_write_integer_att.jnl
diff --git a/bench/bn_xml_header.jnl b/bench/v6jnls/bn_xml_header.jnl
similarity index 100%
rename from bench/bn_xml_header.jnl
rename to bench/v6jnls/bn_xml_header.jnl
diff --git a/bench/bn_xml_repl.jnl b/bench/v6jnls/bn_xml_repl.jnl
similarity index 100%
rename from bench/bn_xml_repl.jnl
rename to bench/v6jnls/bn_xml_repl.jnl
diff --git a/bench/err600_check_bounds_regular.jnl b/bench/v6jnls/err600_check_bounds_regular.jnl
similarity index 100%
rename from bench/err600_check_bounds_regular.jnl
rename to bench/v6jnls/err600_check_bounds_regular.jnl
diff --git a/bench/err600_ferret_axis_names.jnl b/bench/v6jnls/err600_ferret_axis_names.jnl
similarity index 100%
rename from bench/err600_ferret_axis_names.jnl
rename to bench/v6jnls/err600_ferret_axis_names.jnl
diff --git a/bench/err600_if_comments_tab.jnl b/bench/v6jnls/err600_if_comments_tab.jnl
similarity index 100%
rename from bench/err600_if_comments_tab.jnl
rename to bench/v6jnls/err600_if_comments_tab.jnl
diff --git a/bench/err600_let_d.jnl b/bench/v6jnls/err600_let_d.jnl
similarity index 100%
rename from bench/err600_let_d.jnl
rename to bench/v6jnls/err600_let_d.jnl
diff --git a/bench/err600_long_bounds_name.jnl b/bench/v6jnls/err600_long_bounds_name.jnl
similarity index 100%
rename from bench/err600_long_bounds_name.jnl
rename to bench/v6jnls/err600_long_bounds_name.jnl
diff --git a/bench/err600_long_symbol_string.jnl b/bench/v6jnls/err600_long_symbol_string.jnl
similarity index 100%
rename from bench/err600_long_symbol_string.jnl
rename to bench/v6jnls/err600_long_symbol_string.jnl
diff --git a/bench/err600_missing_flag.jnl b/bench/v6jnls/err600_missing_flag.jnl
similarity index 100%
rename from bench/err600_missing_flag.jnl
rename to bench/v6jnls/err600_missing_flag.jnl
diff --git a/bench/err600_nc_des_order.jnl b/bench/v6jnls/err600_nc_des_order.jnl
similarity index 100%
rename from bench/err600_nc_des_order.jnl
rename to bench/v6jnls/err600_nc_des_order.jnl
diff --git a/bench/err600_reset_redefine_axis.jnl b/bench/v6jnls/err600_reset_redefine_axis.jnl
similarity index 100%
rename from bench/err600_reset_redefine_axis.jnl
rename to bench/v6jnls/err600_reset_redefine_axis.jnl
diff --git a/bench/err600_returnsize.jnl b/bench/v6jnls/err600_returnsize.jnl
similarity index 100%
rename from bench/err600_returnsize.jnl
rename to bench/v6jnls/err600_returnsize.jnl
diff --git a/bench/err600_save_two.jnl b/bench/v6jnls/err600_save_two.jnl
similarity index 100%
rename from bench/err600_save_two.jnl
rename to bench/v6jnls/err600_save_two.jnl
diff --git a/bench/err600_set_var_title.jnl b/bench/v6jnls/err600_set_var_title.jnl
similarity index 100%
rename from bench/err600_set_var_title.jnl
rename to bench/v6jnls/err600_set_var_title.jnl
diff --git a/bench/err600_tab_comma_missingdat.jnl b/bench/v6jnls/err600_tab_comma_missingdat.jnl
similarity index 100%
rename from bench/err600_tab_comma_missingdat.jnl
rename to bench/v6jnls/err600_tab_comma_missingdat.jnl
diff --git a/bench/err600_upcase.jnl b/bench/v6jnls/err600_upcase.jnl
similarity index 100%
rename from bench/err600_upcase.jnl
rename to bench/v6jnls/err600_upcase.jnl
diff --git a/bench/err600_var_label.jnl b/bench/v6jnls/err600_var_label.jnl
similarity index 100%
rename from bench/err600_var_label.jnl
rename to bench/v6jnls/err600_var_label.jnl
diff --git a/bench/err600_vec_aspect.jnl b/bench/v6jnls/err600_vec_aspect.jnl
similarity index 100%
rename from bench/err600_vec_aspect.jnl
rename to bench/v6jnls/err600_vec_aspect.jnl
diff --git a/bench/err601_check_missing_3arg.jnl b/bench/v6jnls/err601_check_missing_3arg.jnl
similarity index 100%
rename from bench/err601_check_missing_3arg.jnl
rename to bench/v6jnls/err601_check_missing_3arg.jnl
diff --git a/bench/err601_index_111.jnl b/bench/v6jnls/err601_index_111.jnl
similarity index 100%
rename from bench/err601_index_111.jnl
rename to bench/v6jnls/err601_index_111.jnl
diff --git a/bench/err601_irregular_axis.jnl b/bench/v6jnls/err601_irregular_axis.jnl
similarity index 100%
rename from bench/err601_irregular_axis.jnl
rename to bench/v6jnls/err601_irregular_axis.jnl
diff --git a/bench/err601_missing_string_element.jnl b/bench/v6jnls/err601_missing_string_element.jnl
similarity index 100%
rename from bench/err601_missing_string_element.jnl
rename to bench/v6jnls/err601_missing_string_element.jnl
diff --git a/bench/err601_sho_ax_xml_calendar.jnl b/bench/v6jnls/err601_sho_ax_xml_calendar.jnl
similarity index 100%
rename from bench/err601_sho_ax_xml_calendar.jnl
rename to bench/v6jnls/err601_sho_ax_xml_calendar.jnl
diff --git a/bench/err602_curvi_modulo_cut.jnl b/bench/v6jnls/err602_curvi_modulo_cut.jnl
similarity index 100%
rename from bench/err602_curvi_modulo_cut.jnl
rename to bench/v6jnls/err602_curvi_modulo_cut.jnl
diff --git a/bench/err602_list_prec.jnl b/bench/v6jnls/err602_list_prec.jnl
similarity index 100%
rename from bench/err602_list_prec.jnl
rename to bench/v6jnls/err602_list_prec.jnl
diff --git a/bench/err602_shade_line_lev.jnl b/bench/v6jnls/err602_shade_line_lev.jnl
similarity index 100%
rename from bench/err602_shade_line_lev.jnl
rename to bench/v6jnls/err602_shade_line_lev.jnl
diff --git a/bench/err604_irreg_axis.jnl b/bench/v6jnls/err604_irreg_axis.jnl
similarity index 100%
rename from bench/err604_irreg_axis.jnl
rename to bench/v6jnls/err604_irreg_axis.jnl
diff --git a/bench/err605_show_func.jnl b/bench/v6jnls/err605_show_func.jnl
similarity index 100%
rename from bench/err605_show_func.jnl
rename to bench/v6jnls/err605_show_func.jnl
diff --git a/bench/err607_axis_minmax_syms.jnl b/bench/v6jnls/err607_axis_minmax_syms.jnl
similarity index 100%
rename from bench/err607_axis_minmax_syms.jnl
rename to bench/v6jnls/err607_axis_minmax_syms.jnl
diff --git a/bench/err607_lev_errmsg.jnl b/bench/v6jnls/err607_lev_errmsg.jnl
similarity index 100%
rename from bench/err607_lev_errmsg.jnl
rename to bench/v6jnls/err607_lev_errmsg.jnl
diff --git a/bench/err607_set_new_history_att.jnl b/bench/v6jnls/err607_set_new_history_att.jnl
similarity index 100%
rename from bench/err607_set_new_history_att.jnl
rename to bench/v6jnls/err607_set_new_history_att.jnl
diff --git a/bench/err607_show_var_xml.jnl b/bench/v6jnls/err607_show_var_xml.jnl
similarity index 100%
rename from bench/err607_show_var_xml.jnl
rename to bench/v6jnls/err607_show_var_xml.jnl
diff --git a/bench/err608_bug1556.jnl b/bench/v6jnls/err608_bug1556.jnl
similarity index 100%
rename from bench/err608_bug1556.jnl
rename to bench/v6jnls/err608_bug1556.jnl
diff --git a/bench/err608_precision_neg_numbers.jnl b/bench/v6jnls/err608_precision_neg_numbers.jnl
similarity index 100%
rename from bench/err608_precision_neg_numbers.jnl
rename to bench/v6jnls/err608_precision_neg_numbers.jnl
diff --git a/bench/err611_axislab.jnl b/bench/v6jnls/err611_axislab.jnl
similarity index 100%
rename from bench/err611_axislab.jnl
rename to bench/v6jnls/err611_axislab.jnl
diff --git a/bench/err611_context_after_error.jnl b/bench/v6jnls/err611_context_after_error.jnl
similarity index 100%
rename from bench/err611_context_after_error.jnl
rename to bench/v6jnls/err611_context_after_error.jnl
diff --git a/bench/err611_convert_missing_type.jnl b/bench/v6jnls/err611_convert_missing_type.jnl
similarity index 100%
rename from bench/err611_convert_missing_type.jnl
rename to bench/v6jnls/err611_convert_missing_type.jnl
diff --git a/bench/err611_digit_filename.jnl b/bench/v6jnls/err611_digit_filename.jnl
similarity index 100%
rename from bench/err611_digit_filename.jnl
rename to bench/v6jnls/err611_digit_filename.jnl
diff --git a/bench/err611_ef_string_result.jnl b/bench/v6jnls/err611_ef_string_result.jnl
similarity index 100%
rename from bench/err611_ef_string_result.jnl
rename to bench/v6jnls/err611_ef_string_result.jnl
diff --git a/bench/err611_exit_if.jnl b/bench/v6jnls/err611_exit_if.jnl
similarity index 100%
rename from bench/err611_exit_if.jnl
rename to bench/v6jnls/err611_exit_if.jnl
diff --git a/bench/err611_irregular_axis.jnl b/bench/v6jnls/err611_irregular_axis.jnl
similarity index 100%
rename from bench/err611_irregular_axis.jnl
rename to bench/v6jnls/err611_irregular_axis.jnl
diff --git a/bench/err611_isize_gc_fcns.jnl b/bench/v6jnls/err611_isize_gc_fcns.jnl
similarity index 100%
rename from bench/err611_isize_gc_fcns.jnl
rename to bench/v6jnls/err611_isize_gc_fcns.jnl
diff --git a/bench/err611_ov_ax.jnl b/bench/v6jnls/err611_ov_ax.jnl
similarity index 100%
rename from bench/err611_ov_ax.jnl
rename to bench/v6jnls/err611_ov_ax.jnl
diff --git a/bench/err611_parse_semicolon.jnl b/bench/v6jnls/err611_parse_semicolon.jnl
similarity index 100%
rename from bench/err611_parse_semicolon.jnl
rename to bench/v6jnls/err611_parse_semicolon.jnl
diff --git a/bench/err611_polygons.jnl b/bench/v6jnls/err611_polygons.jnl
similarity index 100%
rename from bench/err611_polygons.jnl
rename to bench/v6jnls/err611_polygons.jnl
diff --git a/bench/err611_return_precision.jnl b/bench/v6jnls/err611_return_precision.jnl
similarity index 100%
rename from bench/err611_return_precision.jnl
rename to bench/v6jnls/err611_return_precision.jnl
diff --git a/bench/err611_save_from_desc.jnl b/bench/v6jnls/err611_save_from_desc.jnl
similarity index 100%
rename from bench/err611_save_from_desc.jnl
rename to bench/v6jnls/err611_save_from_desc.jnl
diff --git a/bench/err611_save_irreg.jnl b/bench/v6jnls/err611_save_irreg.jnl
similarity index 100%
rename from bench/err611_save_irreg.jnl
rename to bench/v6jnls/err611_save_irreg.jnl
diff --git a/bench/err611_set_uvar_outtyp.jnl b/bench/v6jnls/err611_set_uvar_outtyp.jnl
similarity index 100%
rename from bench/err611_set_uvar_outtyp.jnl
rename to bench/v6jnls/err611_set_uvar_outtyp.jnl
diff --git a/bench/err611_set_var_ez.jnl b/bench/v6jnls/err611_set_var_ez.jnl
similarity index 100%
rename from bench/err611_set_var_ez.jnl
rename to bench/v6jnls/err611_set_var_ez.jnl
diff --git a/bench/err611_shade_fill_levs.jnl b/bench/v6jnls/err611_shade_fill_levs.jnl
similarity index 100%
rename from bench/err611_shade_fill_levs.jnl
rename to bench/v6jnls/err611_shade_fill_levs.jnl
diff --git a/bench/err611_wrong_fineaxis_range.jnl b/bench/v6jnls/err611_wrong_fineaxis_range.jnl
similarity index 100%
rename from bench/err611_wrong_fineaxis_range.jnl
rename to bench/v6jnls/err611_wrong_fineaxis_range.jnl
diff --git a/bench/err618_julday.jnl b/bench/v6jnls/err618_julday.jnl
similarity index 100%
rename from bench/err618_julday.jnl
rename to bench/v6jnls/err618_julday.jnl
diff --git a/bench/err61_360_calendar.jnl b/bench/v6jnls/err61_360_calendar.jnl
similarity index 100%
rename from bench/err61_360_calendar.jnl
rename to bench/v6jnls/err61_360_calendar.jnl
diff --git a/bench/err61_context_scalar_strings.jnl b/bench/v6jnls/err61_context_scalar_strings.jnl
similarity index 100%
rename from bench/err61_context_scalar_strings.jnl
rename to bench/v6jnls/err61_context_scalar_strings.jnl
diff --git a/bench/err61_contour_subspan_reps.jnl b/bench/v6jnls/err61_contour_subspan_reps.jnl
similarity index 100%
rename from bench/err61_contour_subspan_reps.jnl
rename to bench/v6jnls/err61_contour_subspan_reps.jnl
diff --git a/bench/err61_exit_script.jnl b/bench/v6jnls/err61_exit_script.jnl
similarity index 100%
rename from bench/err61_exit_script.jnl
rename to bench/v6jnls/err61_exit_script.jnl
diff --git a/bench/err61_new_attr_on_axis.jnl b/bench/v6jnls/err61_new_attr_on_axis.jnl
similarity index 100%
rename from bench/err61_new_attr_on_axis.jnl
rename to bench/v6jnls/err61_new_attr_on_axis.jnl
diff --git a/bench/err61_poly_shade_over_noaxes.jnl b/bench/v6jnls/err61_poly_shade_over_noaxes.jnl
similarity index 100%
rename from bench/err61_poly_shade_over_noaxes.jnl
rename to bench/v6jnls/err61_poly_shade_over_noaxes.jnl
diff --git a/bench/err61_show_dat_var_xml.jnl b/bench/v6jnls/err61_show_dat_var_xml.jnl
similarity index 100%
rename from bench/err61_show_dat_var_xml.jnl
rename to bench/v6jnls/err61_show_dat_var_xml.jnl
diff --git a/bench/err61_write_bounds.jnl b/bench/v6jnls/err61_write_bounds.jnl
similarity index 100%
rename from bench/err61_write_bounds.jnl
rename to bench/v6jnls/err61_write_bounds.jnl
diff --git a/bench/err62_append_irreg_to_reg.jnl b/bench/v6jnls/err62_append_irreg_to_reg.jnl
similarity index 100%
rename from bench/err62_append_irreg_to_reg.jnl
rename to bench/v6jnls/err62_append_irreg_to_reg.jnl
diff --git a/bench/err62_axis_stride_off.jnl b/bench/v6jnls/err62_axis_stride_off.jnl
similarity index 100%
rename from bench/err62_axis_stride_off.jnl
rename to bench/v6jnls/err62_axis_stride_off.jnl
diff --git a/bench/err62_compound_string_conditional.jnl b/bench/v6jnls/err62_compound_string_conditional.jnl
similarity index 100%
rename from bench/err62_compound_string_conditional.jnl
rename to bench/v6jnls/err62_compound_string_conditional.jnl
diff --git a/bench/err62_contourbug.jnl b/bench/v6jnls/err62_contourbug.jnl
similarity index 100%
rename from bench/err62_contourbug.jnl
rename to bench/v6jnls/err62_contourbug.jnl
diff --git a/bench/err62_cos_lat_uncentered.jnl b/bench/v6jnls/err62_cos_lat_uncentered.jnl
similarity index 100%
rename from bench/err62_cos_lat_uncentered.jnl
rename to bench/v6jnls/err62_cos_lat_uncentered.jnl
diff --git a/bench/err62_if_inside_repeat.jnl b/bench/v6jnls/err62_if_inside_repeat.jnl
similarity index 100%
rename from bench/err62_if_inside_repeat.jnl
rename to bench/v6jnls/err62_if_inside_repeat.jnl
diff --git a/bench/err62_levset.jnl b/bench/v6jnls/err62_levset.jnl
similarity index 100%
rename from bench/err62_levset.jnl
rename to bench/v6jnls/err62_levset.jnl
diff --git a/bench/err62_one_point_bounds.jnl b/bench/v6jnls/err62_one_point_bounds.jnl
similarity index 100%
rename from bench/err62_one_point_bounds.jnl
rename to bench/v6jnls/err62_one_point_bounds.jnl
diff --git a/bench/err62_reset_after_inf.jnl b/bench/v6jnls/err62_reset_after_inf.jnl
similarity index 100%
rename from bench/err62_reset_after_inf.jnl
rename to bench/v6jnls/err62_reset_after_inf.jnl
diff --git a/bench/err62_reversed_up.jnl b/bench/v6jnls/err62_reversed_up.jnl
similarity index 100%
rename from bench/err62_reversed_up.jnl
rename to bench/v6jnls/err62_reversed_up.jnl
diff --git a/bench/err62_samplexy.jnl b/bench/v6jnls/err62_samplexy.jnl
similarity index 100%
rename from bench/err62_samplexy.jnl
rename to bench/v6jnls/err62_samplexy.jnl
diff --git a/bench/err62_save_missingcoordvar.jnl b/bench/v6jnls/err62_save_missingcoordvar.jnl
similarity index 100%
rename from bench/err62_save_missingcoordvar.jnl
rename to bench/v6jnls/err62_save_missingcoordvar.jnl
diff --git a/bench/err62_string_write_nc.jnl b/bench/v6jnls/err62_string_write_nc.jnl
similarity index 100%
rename from bench/err62_string_write_nc.jnl
rename to bench/v6jnls/err62_string_write_nc.jnl
diff --git a/bench/err62_thick_tic_time_axis.jnl b/bench/v6jnls/err62_thick_tic_time_axis.jnl
similarity index 100%
rename from bench/err62_thick_tic_time_axis.jnl
rename to bench/v6jnls/err62_thick_tic_time_axis.jnl
diff --git a/bench/err62_title_curvi_plot.jnl b/bench/v6jnls/err62_title_curvi_plot.jnl
similarity index 100%
rename from bench/err62_title_curvi_plot.jnl
rename to bench/v6jnls/err62_title_curvi_plot.jnl
diff --git a/bench/err63_days1900toydmhms.jnl b/bench/v6jnls/err63_days1900toydmhms.jnl
similarity index 100%
rename from bench/err63_days1900toydmhms.jnl
rename to bench/v6jnls/err63_days1900toydmhms.jnl
diff --git a/bench/err63_delim_E.jnl b/bench/v6jnls/err63_delim_E.jnl
similarity index 100%
rename from bench/err63_delim_E.jnl
rename to bench/v6jnls/err63_delim_E.jnl
diff --git a/bench/err63_log_vaxis.jnl b/bench/v6jnls/err63_log_vaxis.jnl
similarity index 100%
rename from bench/err63_log_vaxis.jnl
rename to bench/v6jnls/err63_log_vaxis.jnl
diff --git a/bench/err64_packed_data.jnl b/bench/v6jnls/err64_packed_data.jnl
similarity index 100%
rename from bench/err64_packed_data.jnl
rename to bench/v6jnls/err64_packed_data.jnl
diff --git a/bench/err64_parse_equals.jnl b/bench/v6jnls/err64_parse_equals.jnl
similarity index 100%
rename from bench/err64_parse_equals.jnl
rename to bench/v6jnls/err64_parse_equals.jnl
diff --git a/bench/err64_polymark_over_calendar.jnl b/bench/v6jnls/err64_polymark_over_calendar.jnl
similarity index 100%
rename from bench/err64_polymark_over_calendar.jnl
rename to bench/v6jnls/err64_polymark_over_calendar.jnl
diff --git a/bench/err64_regrid_noleap.jnl b/bench/v6jnls/err64_regrid_noleap.jnl
similarity index 100%
rename from bench/err64_regrid_noleap.jnl
rename to bench/v6jnls/err64_regrid_noleap.jnl
diff --git a/bench/err64_return_precision.jnl b/bench/v6jnls/err64_return_precision.jnl
similarity index 100%
rename from bench/err64_return_precision.jnl
rename to bench/v6jnls/err64_return_precision.jnl
diff --git a/bench/err64_shakey_missingdata.jnl b/bench/v6jnls/err64_shakey_missingdata.jnl
similarity index 100%
rename from bench/err64_shakey_missingdata.jnl
rename to bench/v6jnls/err64_shakey_missingdata.jnl
diff --git a/bench/err64_very_small_latlon.jnl b/bench/v6jnls/err64_very_small_latlon.jnl
similarity index 100%
rename from bench/err64_very_small_latlon.jnl
rename to bench/v6jnls/err64_very_small_latlon.jnl
diff --git a/bench/err65_averages.jnl b/bench/v6jnls/err65_averages.jnl
similarity index 100%
rename from bench/err65_averages.jnl
rename to bench/v6jnls/err65_averages.jnl
diff --git a/bench/err65_dots_in_dashes.jnl b/bench/v6jnls/err65_dots_in_dashes.jnl
similarity index 100%
rename from bench/err65_dots_in_dashes.jnl
rename to bench/v6jnls/err65_dots_in_dashes.jnl
diff --git a/bench/err65_read_epic_cdf.jnl b/bench/v6jnls/err65_read_epic_cdf.jnl
similarity index 100%
rename from bench/err65_read_epic_cdf.jnl
rename to bench/v6jnls/err65_read_epic_cdf.jnl
diff --git a/bench/err664_tax_fcns.jnl b/bench/v6jnls/err664_tax_fcns.jnl
similarity index 100%
rename from bench/err664_tax_fcns.jnl
rename to bench/v6jnls/err664_tax_fcns.jnl
diff --git a/bench/err664_xml_keep_case.jnl b/bench/v6jnls/err664_xml_keep_case.jnl
similarity index 100%
rename from bench/err664_xml_keep_case.jnl
rename to bench/v6jnls/err664_xml_keep_case.jnl
diff --git a/bench/err664_xml_one_point_axis.jnl b/bench/v6jnls/err664_xml_one_point_axis.jnl
similarity index 100%
rename from bench/err664_xml_one_point_axis.jnl
rename to bench/v6jnls/err664_xml_one_point_axis.jnl
diff --git a/bench/err665_centered_lev.jnl b/bench/v6jnls/err665_centered_lev.jnl
similarity index 100%
rename from bench/err665_centered_lev.jnl
rename to bench/v6jnls/err665_centered_lev.jnl
diff --git a/bench/err665_din.jnl b/bench/v6jnls/err665_din.jnl
similarity index 100%
rename from bench/err665_din.jnl
rename to bench/v6jnls/err665_din.jnl
diff --git a/bench/err665_hours_since_T.jnl b/bench/v6jnls/err665_hours_since_T.jnl
similarity index 100%
rename from bench/err665_hours_since_T.jnl
rename to bench/v6jnls/err665_hours_since_T.jnl
diff --git a/bench/err665_sum_4d_labels.jnl b/bench/v6jnls/err665_sum_4d_labels.jnl
similarity index 100%
rename from bench/err665_sum_4d_labels.jnl
rename to bench/v6jnls/err665_sum_4d_labels.jnl
diff --git a/bench/err667_5d_netcdf.jnl b/bench/v6jnls/err667_5d_netcdf.jnl
similarity index 100%
rename from bench/err667_5d_netcdf.jnl
rename to bench/v6jnls/err667_5d_netcdf.jnl
diff --git a/bench/err667_att_too_long.jnl b/bench/v6jnls/err667_att_too_long.jnl
similarity index 100%
rename from bench/err667_att_too_long.jnl
rename to bench/v6jnls/err667_att_too_long.jnl
diff --git a/bench/err667_dup_axnames.jnl b/bench/v6jnls/err667_dup_axnames.jnl
similarity index 100%
rename from bench/err667_dup_axnames.jnl
rename to bench/v6jnls/err667_dup_axnames.jnl
diff --git a/bench/err667_mode_desperate.jnl b/bench/v6jnls/err667_mode_desperate.jnl
similarity index 100%
rename from bench/err667_mode_desperate.jnl
rename to bench/v6jnls/err667_mode_desperate.jnl
diff --git a/bench/err667_show_var_twice.jnl b/bench/v6jnls/err667_show_var_twice.jnl
similarity index 100%
rename from bench/err667_show_var_twice.jnl
rename to bench/v6jnls/err667_show_var_twice.jnl
diff --git a/bench/err667_string_if.jnl b/bench/v6jnls/err667_string_if.jnl
similarity index 100%
rename from bench/err667_string_if.jnl
rename to bench/v6jnls/err667_string_if.jnl
diff --git a/bench/err66_all_missing_lev_v.jnl b/bench/v6jnls/err66_all_missing_lev_v.jnl
similarity index 100%
rename from bench/err66_all_missing_lev_v.jnl
rename to bench/v6jnls/err66_all_missing_lev_v.jnl
diff --git a/bench/err672_axis_label_prec.jnl b/bench/v6jnls/err672_axis_label_prec.jnl
similarity index 100%
rename from bench/err672_axis_label_prec.jnl
rename to bench/v6jnls/err672_axis_label_prec.jnl
diff --git a/bench/err672_axis_order.jnl b/bench/v6jnls/err672_axis_order.jnl
similarity index 80%
rename from bench/err672_axis_order.jnl
rename to bench/v6jnls/err672_axis_order.jnl
index 43e4bfc..879a0d5 100644
--- a/bench/err672_axis_order.jnl
+++ b/bench/v6jnls/err672_axis_order.jnl
@@ -3,7 +3,7 @@
 
 
 use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
+sp cp data/err67_axis_order.nc err67_axis_order_copy.nc
 use err67_axis_order_copy.nc
 sh dat
 
diff --git a/bench/err672_dset_cx.jnl b/bench/v6jnls/err672_dset_cx.jnl
similarity index 100%
rename from bench/err672_dset_cx.jnl
rename to bench/v6jnls/err672_dset_cx.jnl
diff --git a/bench/err672_long_show_axis.jnl b/bench/v6jnls/err672_long_show_axis.jnl
similarity index 100%
rename from bench/err672_long_show_axis.jnl
rename to bench/v6jnls/err672_long_show_axis.jnl
diff --git a/bench/err672_runoff_page.jnl b/bench/v6jnls/err672_runoff_page.jnl
similarity index 100%
rename from bench/err672_runoff_page.jnl
rename to bench/v6jnls/err672_runoff_page.jnl
diff --git a/bench/err672_samplexy_modulo.jnl b/bench/v6jnls/err672_samplexy_modulo.jnl
similarity index 100%
rename from bench/err672_samplexy_modulo.jnl
rename to bench/v6jnls/err672_samplexy_modulo.jnl
diff --git a/bench/err672_stray_line.jnl b/bench/v6jnls/err672_stray_line.jnl
similarity index 100%
rename from bench/err672_stray_line.jnl
rename to bench/v6jnls/err672_stray_line.jnl
diff --git a/bench/err672_subscr_precision.jnl b/bench/v6jnls/err672_subscr_precision.jnl
similarity index 100%
rename from bench/err672_subscr_precision.jnl
rename to bench/v6jnls/err672_subscr_precision.jnl
diff --git a/bench/err672_tax_functions_prec.jnl b/bench/v6jnls/err672_tax_functions_prec.jnl
similarity index 100%
rename from bench/err672_tax_functions_prec.jnl
rename to bench/v6jnls/err672_tax_functions_prec.jnl
diff --git a/bench/err672_varnames.jnl b/bench/v6jnls/err672_varnames.jnl
similarity index 100%
rename from bench/err672_varnames.jnl
rename to bench/v6jnls/err672_varnames.jnl
diff --git a/bench/err672_vert_axislabel.jnl b/bench/v6jnls/err672_vert_axislabel.jnl
similarity index 100%
rename from bench/err672_vert_axislabel.jnl
rename to bench/v6jnls/err672_vert_axislabel.jnl
diff --git a/bench/err67_nrst_trans.jnl b/bench/v6jnls/err67_nrst_trans.jnl
similarity index 100%
rename from bench/err67_nrst_trans.jnl
rename to bench/v6jnls/err67_nrst_trans.jnl
diff --git a/bench/err67_regridding_dyn.jnl b/bench/v6jnls/err67_regridding_dyn.jnl
similarity index 100%
rename from bench/err67_regridding_dyn.jnl
rename to bench/v6jnls/err67_regridding_dyn.jnl
diff --git a/bench/err67_reverse_bounds.jnl b/bench/v6jnls/err67_reverse_bounds.jnl
similarity index 100%
rename from bench/err67_reverse_bounds.jnl
rename to bench/v6jnls/err67_reverse_bounds.jnl
diff --git a/bench/err67_save_append_open.jnl b/bench/v6jnls/err67_save_append_open.jnl
similarity index 100%
rename from bench/err67_save_append_open.jnl
rename to bench/v6jnls/err67_save_append_open.jnl
diff --git a/bench/err67_tax_modtime.jnl b/bench/v6jnls/err67_tax_modtime.jnl
similarity index 100%
rename from bench/err67_tax_modtime.jnl
rename to bench/v6jnls/err67_tax_modtime.jnl
diff --git a/bench/err681_dims_direction.jnl b/bench/v6jnls/err681_dims_direction.jnl
similarity index 100%
rename from bench/err681_dims_direction.jnl
rename to bench/v6jnls/err681_dims_direction.jnl
diff --git a/bench/err682_append_packed.jnl b/bench/v6jnls/err682_append_packed.jnl
similarity index 100%
rename from bench/err682_append_packed.jnl
rename to bench/v6jnls/err682_append_packed.jnl
diff --git a/bench/err682_axis_no_clue.jnl b/bench/v6jnls/err682_axis_no_clue.jnl
similarity index 100%
rename from bench/err682_axis_no_clue.jnl
rename to bench/v6jnls/err682_axis_no_clue.jnl
diff --git a/bench/err682_grid_merge.jnl b/bench/v6jnls/err682_grid_merge.jnl
similarity index 100%
rename from bench/err682_grid_merge.jnl
rename to bench/v6jnls/err682_grid_merge.jnl
diff --git a/bench/err682_if_yes_exit.jnl b/bench/v6jnls/err682_if_yes_exit.jnl
similarity index 100%
rename from bench/err682_if_yes_exit.jnl
rename to bench/v6jnls/err682_if_yes_exit.jnl
diff --git a/bench/err682_scale_no_offset.jnl b/bench/v6jnls/err682_scale_no_offset.jnl
similarity index 100%
rename from bench/err682_scale_no_offset.jnl
rename to bench/v6jnls/err682_scale_no_offset.jnl
diff --git a/bench/err682_shrink_axlab.jnl b/bench/v6jnls/err682_shrink_axlab.jnl
similarity index 100%
rename from bench/err682_shrink_axlab.jnl
rename to bench/v6jnls/err682_shrink_axlab.jnl
diff --git a/bench/err682_use_no_quotes.jnl b/bench/v6jnls/err682_use_no_quotes.jnl
similarity index 100%
rename from bench/err682_use_no_quotes.jnl
rename to bench/v6jnls/err682_use_no_quotes.jnl
diff --git a/bench/err682_xact_high_prec.jnl b/bench/v6jnls/err682_xact_high_prec.jnl
similarity index 100%
rename from bench/err682_xact_high_prec.jnl
rename to bench/v6jnls/err682_xact_high_prec.jnl
diff --git a/bench/err6842_context_shape.jnl b/bench/v6jnls/err6842_context_shape.jnl
similarity index 100%
rename from bench/err6842_context_shape.jnl
rename to bench/v6jnls/err6842_context_shape.jnl
diff --git a/bench/err684_FillValue_xml.jnl b/bench/v6jnls/err684_FillValue_xml.jnl
similarity index 100%
rename from bench/err684_FillValue_xml.jnl
rename to bench/v6jnls/err684_FillValue_xml.jnl
diff --git a/bench/err684_axticlab.jnl b/bench/v6jnls/err684_axticlab.jnl
similarity index 100%
rename from bench/err684_axticlab.jnl
rename to bench/v6jnls/err684_axticlab.jnl
diff --git a/bench/err684_context_shape.jnl b/bench/v6jnls/err684_context_shape.jnl
similarity index 100%
rename from bench/err684_context_shape.jnl
rename to bench/v6jnls/err684_context_shape.jnl
diff --git a/bench/err684_define_grid.jnl b/bench/v6jnls/err684_define_grid.jnl
similarity index 100%
rename from bench/err684_define_grid.jnl
rename to bench/v6jnls/err684_define_grid.jnl
diff --git a/bench/err684_degC_axlab.jnl b/bench/v6jnls/err684_degC_axlab.jnl
similarity index 100%
rename from bench/err684_degC_axlab.jnl
rename to bench/v6jnls/err684_degC_axlab.jnl
diff --git a/bench/err684_delimited_precision.jnl b/bench/v6jnls/err684_delimited_precision.jnl
similarity index 95%
rename from bench/err684_delimited_precision.jnl
rename to bench/v6jnls/err684_delimited_precision.jnl
index 2ed95a0..2cb9953 100644
--- a/bench/err684_delimited_precision.jnl
+++ b/bench/v6jnls/err684_delimited_precision.jnl
@@ -4,7 +4,7 @@
 
 ! 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
+sp cat data/delim_prec.dat
 
 ! Delimited read, automatically detect data types
 set data/ez/format=delim/del=" " delim_prec.dat
diff --git a/bench/err684_dotstart.jnl b/bench/v6jnls/err684_dotstart.jnl
similarity index 100%
rename from bench/err684_dotstart.jnl
rename to bench/v6jnls/err684_dotstart.jnl
diff --git a/bench/err684_evnt_z.jnl b/bench/v6jnls/err684_evnt_z.jnl
similarity index 100%
rename from bench/err684_evnt_z.jnl
rename to bench/v6jnls/err684_evnt_z.jnl
diff --git a/bench/err684_label_quotes.jnl b/bench/v6jnls/err684_label_quotes.jnl
similarity index 100%
rename from bench/err684_label_quotes.jnl
rename to bench/v6jnls/err684_label_quotes.jnl
diff --git a/bench/err684_line_plot_zero.jnl b/bench/v6jnls/err684_line_plot_zero.jnl
similarity index 100%
rename from bench/err684_line_plot_zero.jnl
rename to bench/v6jnls/err684_line_plot_zero.jnl
diff --git a/bench/err684_null_stringwrite.jnl b/bench/v6jnls/err684_null_stringwrite.jnl
similarity index 100%
rename from bench/err684_null_stringwrite.jnl
rename to bench/v6jnls/err684_null_stringwrite.jnl
diff --git a/bench/err684_packed_output.jnl b/bench/v6jnls/err684_packed_output.jnl
similarity index 100%
rename from bench/err684_packed_output.jnl
rename to bench/v6jnls/err684_packed_output.jnl
diff --git a/bench/err684_repeated_coordindates.jnl b/bench/v6jnls/err684_repeated_coordindates.jnl
similarity index 100%
rename from bench/err684_repeated_coordindates.jnl
rename to bench/v6jnls/err684_repeated_coordindates.jnl
diff --git a/bench/err684_save_expression.jnl b/bench/v6jnls/err684_save_expression.jnl
similarity index 100%
rename from bench/err684_save_expression.jnl
rename to bench/v6jnls/err684_save_expression.jnl
diff --git a/bench/err684_save_subset.jnl b/bench/v6jnls/err684_save_subset.jnl
similarity index 100%
rename from bench/err684_save_subset.jnl
rename to bench/v6jnls/err684_save_subset.jnl
diff --git a/bench/err684_string_dim_name.jnl b/bench/v6jnls/err684_string_dim_name.jnl
similarity index 100%
rename from bench/err684_string_dim_name.jnl
rename to bench/v6jnls/err684_string_dim_name.jnl
diff --git a/bench/err684_tax_fcns.jnl b/bench/v6jnls/err684_tax_fcns.jnl
similarity index 100%
rename from bench/err684_tax_fcns.jnl
rename to bench/v6jnls/err684_tax_fcns.jnl
diff --git a/bench/err684_vfine_to_coarse.jnl b/bench/v6jnls/err684_vfine_to_coarse.jnl
similarity index 100%
rename from bench/err684_vfine_to_coarse.jnl
rename to bench/v6jnls/err684_vfine_to_coarse.jnl
diff --git a/bench/err685_lowercaseAxis.jnl b/bench/v6jnls/err685_lowercaseAxis.jnl
similarity index 100%
rename from bench/err685_lowercaseAxis.jnl
rename to bench/v6jnls/err685_lowercaseAxis.jnl
diff --git a/bench/err685_ppl_palette.jnl b/bench/v6jnls/err685_ppl_palette.jnl
similarity index 100%
rename from bench/err685_ppl_palette.jnl
rename to bench/v6jnls/err685_ppl_palette.jnl
diff --git a/bench/err685_redefine_uvar_att.jnl b/bench/v6jnls/err685_redefine_uvar_att.jnl
similarity index 100%
rename from bench/err685_redefine_uvar_att.jnl
rename to bench/v6jnls/err685_redefine_uvar_att.jnl
diff --git a/bench/err685_ribbon_by_val.jnl b/bench/v6jnls/err685_ribbon_by_val.jnl
similarity index 100%
rename from bench/err685_ribbon_by_val.jnl
rename to bench/v6jnls/err685_ribbon_by_val.jnl
diff --git a/bench/err685_samplexy.jnl b/bench/v6jnls/err685_samplexy.jnl
similarity index 100%
rename from bench/err685_samplexy.jnl
rename to bench/v6jnls/err685_samplexy.jnl
diff --git a/bench/err685_shade_set.jnl b/bench/v6jnls/err685_shade_set.jnl
similarity index 100%
rename from bench/err685_shade_set.jnl
rename to bench/v6jnls/err685_shade_set.jnl
diff --git a/bench/err685_show_grid_e.jnl b/bench/v6jnls/err685_show_grid_e.jnl
similarity index 100%
rename from bench/err685_show_grid_e.jnl
rename to bench/v6jnls/err685_show_grid_e.jnl
diff --git a/bench/err685_use_no_extension.jnl b/bench/v6jnls/err685_use_no_extension.jnl
similarity index 95%
rename from bench/err685_use_no_extension.jnl
rename to bench/v6jnls/err685_use_no_extension.jnl
index 9407931..6096e58 100644
--- a/bench/err685_use_no_extension.jnl
+++ b/bench/v6jnls/err685_use_no_extension.jnl
@@ -2,7 +2,7 @@
 !  but .des was not being tried.
 
 ! The directory contains files with all three extensions
-sp ls duplicate.*
+sp ls data/duplicate.*
 
 ! The one that's used is .nc
 use duplicate
diff --git a/bench/err686_cancel_invalid_var.jnl b/bench/v6jnls/err686_cancel_invalid_var.jnl
similarity index 100%
rename from bench/err686_cancel_invalid_var.jnl
rename to bench/v6jnls/err686_cancel_invalid_var.jnl
diff --git a/bench/err686_dup_axnames.jnl b/bench/v6jnls/err686_dup_axnames.jnl
similarity index 100%
rename from bench/err686_dup_axnames.jnl
rename to bench/v6jnls/err686_dup_axnames.jnl
diff --git a/bench/err686_faxis_label.jnl b/bench/v6jnls/err686_faxis_label.jnl
similarity index 100%
rename from bench/err686_faxis_label.jnl
rename to bench/v6jnls/err686_faxis_label.jnl
diff --git a/bench/err686_individual_levels.jnl b/bench/v6jnls/err686_individual_levels.jnl
similarity index 100%
rename from bench/err686_individual_levels.jnl
rename to bench/v6jnls/err686_individual_levels.jnl
diff --git a/bench/err686_long_list_varnames.jnl b/bench/v6jnls/err686_long_list_varnames.jnl
similarity index 100%
rename from bench/err686_long_list_varnames.jnl
rename to bench/v6jnls/err686_long_list_varnames.jnl
diff --git a/bench/err686_redef_ascii_att.jnl b/bench/v6jnls/err686_redef_ascii_att.jnl
similarity index 100%
rename from bench/err686_redef_ascii_att.jnl
rename to bench/v6jnls/err686_redef_ascii_att.jnl
diff --git a/bench/err686_set_var_name.jnl b/bench/v6jnls/err686_set_var_name.jnl
similarity index 100%
rename from bench/err686_set_var_name.jnl
rename to bench/v6jnls/err686_set_var_name.jnl
diff --git a/bench/err686_sho_nonexist_att.jnl b/bench/v6jnls/err686_sho_nonexist_att.jnl
similarity index 100%
rename from bench/err686_sho_nonexist_att.jnl
rename to bench/v6jnls/err686_sho_nonexist_att.jnl
diff --git a/bench/err686_show_xml_letd.jnl b/bench/v6jnls/err686_show_xml_letd.jnl
similarity index 100%
rename from bench/err686_show_xml_letd.jnl
rename to bench/v6jnls/err686_show_xml_letd.jnl
diff --git a/bench/err691_bnds_case.jnl b/bench/v6jnls/err691_bnds_case.jnl
similarity index 100%
rename from bench/err691_bnds_case.jnl
rename to bench/v6jnls/err691_bnds_case.jnl
diff --git a/bench/err691_pt_in_poly.jnl b/bench/v6jnls/err691_pt_in_poly.jnl
similarity index 100%
rename from bench/err691_pt_in_poly.jnl
rename to bench/v6jnls/err691_pt_in_poly.jnl
diff --git a/bench/err691_substring_arg.jnl b/bench/v6jnls/err691_substring_arg.jnl
similarity index 100%
rename from bench/err691_substring_arg.jnl
rename to bench/v6jnls/err691_substring_arg.jnl
diff --git a/bench/err693_attr_in_gcfcn.jnl b/bench/v6jnls/err693_attr_in_gcfcn.jnl
similarity index 100%
rename from bench/err693_attr_in_gcfcn.jnl
rename to bench/v6jnls/err693_attr_in_gcfcn.jnl
diff --git a/bench/err693_edit_useratt.jnl b/bench/v6jnls/err693_edit_useratt.jnl
similarity index 100%
rename from bench/err693_edit_useratt.jnl
rename to bench/v6jnls/err693_edit_useratt.jnl
diff --git a/bench/err693_ef_axis_precision.jnl b/bench/v6jnls/err693_ef_axis_precision.jnl
similarity index 100%
rename from bench/err693_ef_axis_precision.jnl
rename to bench/v6jnls/err693_ef_axis_precision.jnl
diff --git a/bench/err693_fcn_of_attvar.jnl b/bench/v6jnls/err693_fcn_of_attvar.jnl
similarity index 100%
rename from bench/err693_fcn_of_attvar.jnl
rename to bench/v6jnls/err693_fcn_of_attvar.jnl
diff --git a/bench/err693_frame_types.jnl b/bench/v6jnls/err693_frame_types.jnl
similarity index 100%
rename from bench/err693_frame_types.jnl
rename to bench/v6jnls/err693_frame_types.jnl
diff --git a/bench/err693_if_then_flow_1368.jnl b/bench/v6jnls/err693_if_then_flow_1368.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1368.jnl
rename to bench/v6jnls/err693_if_then_flow_1368.jnl
diff --git a/bench/err693_if_then_flow_1446.jnl b/bench/v6jnls/err693_if_then_flow_1446.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1446.jnl
rename to bench/v6jnls/err693_if_then_flow_1446.jnl
diff --git a/bench/err693_if_then_flow_1681.jnl b/bench/v6jnls/err693_if_then_flow_1681.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1681.jnl
rename to bench/v6jnls/err693_if_then_flow_1681.jnl
diff --git a/bench/err693_if_then_flow_1706.jnl b/bench/v6jnls/err693_if_then_flow_1706.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1706.jnl
rename to bench/v6jnls/err693_if_then_flow_1706.jnl
diff --git a/bench/err693_if_then_flow_1860.jnl b/bench/v6jnls/err693_if_then_flow_1860.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1860.jnl
rename to bench/v6jnls/err693_if_then_flow_1860.jnl
diff --git a/bench/err693_if_then_flow_2211.jnl b/bench/v6jnls/err693_if_then_flow_2211.jnl
similarity index 100%
rename from bench/err693_if_then_flow_2211.jnl
rename to bench/v6jnls/err693_if_then_flow_2211.jnl
diff --git a/bench/err693_if_then_flow_2214.jnl b/bench/v6jnls/err693_if_then_flow_2214.jnl
similarity index 100%
rename from bench/err693_if_then_flow_2214.jnl
rename to bench/v6jnls/err693_if_then_flow_2214.jnl
diff --git a/bench/err693_inconsistent_quote.jnl b/bench/v6jnls/err693_inconsistent_quote.jnl
similarity index 100%
rename from bench/err693_inconsistent_quote.jnl
rename to bench/v6jnls/err693_inconsistent_quote.jnl
diff --git a/bench/err693_isize_and_gcfcn.jnl b/bench/v6jnls/err693_isize_and_gcfcn.jnl
similarity index 100%
rename from bench/err693_isize_and_gcfcn.jnl
rename to bench/v6jnls/err693_isize_and_gcfcn.jnl
diff --git a/bench/err693_isready_dyn_grid_crash.jnl b/bench/v6jnls/err693_isready_dyn_grid_crash.jnl
similarity index 100%
rename from bench/err693_isready_dyn_grid_crash.jnl
rename to bench/v6jnls/err693_isready_dyn_grid_crash.jnl
diff --git a/bench/err693_isready_hang.jnl b/bench/v6jnls/err693_isready_hang.jnl
similarity index 100%
rename from bench/err693_isready_hang.jnl
rename to bench/v6jnls/err693_isready_hang.jnl
diff --git a/bench/err693_lev_nv_over.jnl b/bench/v6jnls/err693_lev_nv_over.jnl
similarity index 100%
rename from bench/err693_lev_nv_over.jnl
rename to bench/v6jnls/err693_lev_nv_over.jnl
diff --git a/bench/err693_line_over_axis.jnl b/bench/v6jnls/err693_line_over_axis.jnl
similarity index 100%
rename from bench/err693_line_over_axis.jnl
rename to bench/v6jnls/err693_line_over_axis.jnl
diff --git a/bench/err693_list_missing.jnl b/bench/v6jnls/err693_list_missing.jnl
similarity index 100%
rename from bench/err693_list_missing.jnl
rename to bench/v6jnls/err693_list_missing.jnl
diff --git a/bench/err693_parse_curly.jnl b/bench/v6jnls/err693_parse_curly.jnl
similarity index 100%
rename from bench/err693_parse_curly.jnl
rename to bench/v6jnls/err693_parse_curly.jnl
diff --git a/bench/err693_parse_curly.sub b/bench/v6jnls/err693_parse_curly.sub
similarity index 100%
rename from bench/err693_parse_curly.sub
rename to bench/v6jnls/err693_parse_curly.sub
diff --git a/bench/err693_redef_rec_axis.jnl b/bench/v6jnls/err693_redef_rec_axis.jnl
similarity index 100%
rename from bench/err693_redef_rec_axis.jnl
rename to bench/v6jnls/err693_redef_rec_axis.jnl
diff --git a/bench/err693_repeat_err.jnl b/bench/v6jnls/err693_repeat_err.jnl
similarity index 100%
rename from bench/err693_repeat_err.jnl
rename to bench/v6jnls/err693_repeat_err.jnl
diff --git a/bench/err693_ribbon_scale.jnl b/bench/v6jnls/err693_ribbon_scale.jnl
similarity index 100%
rename from bench/err693_ribbon_scale.jnl
rename to bench/v6jnls/err693_ribbon_scale.jnl
diff --git a/bench/err693_ribbon_start_missing.jnl b/bench/v6jnls/err693_ribbon_start_missing.jnl
similarity index 100%
rename from bench/err693_ribbon_start_missing.jnl
rename to bench/v6jnls/err693_ribbon_start_missing.jnl
diff --git a/bench/err693_save_packed.jnl b/bench/v6jnls/err693_save_packed.jnl
similarity index 100%
rename from bench/err693_save_packed.jnl
rename to bench/v6jnls/err693_save_packed.jnl
diff --git a/bench/err693_scalar_grids.jnl b/bench/v6jnls/err693_scalar_grids.jnl
similarity index 100%
rename from bench/err693_scalar_grids.jnl
rename to bench/v6jnls/err693_scalar_grids.jnl
diff --git a/bench/err693_shape.jnl b/bench/v6jnls/err693_shape.jnl
similarity index 100%
rename from bench/err693_shape.jnl
rename to bench/v6jnls/err693_shape.jnl
diff --git a/bench/err693_shf_subscr.jnl b/bench/v6jnls/err693_shf_subscr.jnl
similarity index 100%
rename from bench/err693_shf_subscr.jnl
rename to bench/v6jnls/err693_shf_subscr.jnl
diff --git a/bench/err693_shift_w_region.jnl b/bench/v6jnls/err693_shift_w_region.jnl
similarity index 100%
rename from bench/err693_shift_w_region.jnl
rename to bench/v6jnls/err693_shift_w_region.jnl
diff --git a/bench/err693_std4d.jnl b/bench/v6jnls/err693_std4d.jnl
similarity index 100%
rename from bench/err693_std4d.jnl
rename to bench/v6jnls/err693_std4d.jnl
diff --git a/bench/err693_string_results.jnl b/bench/v6jnls/err693_string_results.jnl
similarity index 100%
rename from bench/err693_string_results.jnl
rename to bench/v6jnls/err693_string_results.jnl
diff --git a/bench/err693_subspan_trans.jnl b/bench/v6jnls/err693_subspan_trans.jnl
similarity index 100%
rename from bench/err693_subspan_trans.jnl
rename to bench/v6jnls/err693_subspan_trans.jnl
diff --git a/bench/err693_undetected_regrid_dset.jnl b/bench/v6jnls/err693_undetected_regrid_dset.jnl
similarity index 100%
rename from bench/err693_undetected_regrid_dset.jnl
rename to bench/v6jnls/err693_undetected_regrid_dset.jnl
diff --git a/bench/err693_upcase_quoted_name.jnl b/bench/v6jnls/err693_upcase_quoted_name.jnl
similarity index 100%
rename from bench/err693_upcase_quoted_name.jnl
rename to bench/v6jnls/err693_upcase_quoted_name.jnl
diff --git a/bench/err694_longname_showdat.jnl b/bench/v6jnls/err694_longname_showdat.jnl
similarity index 85%
rename from bench/err694_longname_showdat.jnl
rename to bench/v6jnls/err694_longname_showdat.jnl
index 1565260..fa0e894 100644
--- a/bench/err694_longname_showdat.jnl
+++ b/bench/v6jnls/err694_longname_showdat.jnl
@@ -3,7 +3,7 @@
 !
 ! Make a file whose name starts the same as file with long name.
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
-sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
 
 use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 
diff --git a/bench/err694_shf_missing.jnl b/bench/v6jnls/err694_shf_missing.jnl
similarity index 100%
rename from bench/err694_shf_missing.jnl
rename to bench/v6jnls/err694_shf_missing.jnl
diff --git a/bench/err695_bounds_match_axis.jnl b/bench/v6jnls/err695_bounds_match_axis.jnl
similarity index 100%
rename from bench/err695_bounds_match_axis.jnl
rename to bench/v6jnls/err695_bounds_match_axis.jnl
diff --git a/bench/err695_grave_prec.jnl b/bench/v6jnls/err695_grave_prec.jnl
similarity index 100%
rename from bench/err695_grave_prec.jnl
rename to bench/v6jnls/err695_grave_prec.jnl
diff --git a/bench/err695_show_dat_nodata.jnl b/bench/v6jnls/err695_show_dat_nodata.jnl
similarity index 100%
rename from bench/err695_show_dat_nodata.jnl
rename to bench/v6jnls/err695_show_dat_nodata.jnl
diff --git a/bench/err696_2d_time_overlay.jnl b/bench/v6jnls/err696_2d_time_overlay.jnl
similarity index 100%
rename from bench/err696_2d_time_overlay.jnl
rename to bench/v6jnls/err696_2d_time_overlay.jnl
diff --git a/bench/err696_annotate_numeric.jnl b/bench/v6jnls/err696_annotate_numeric.jnl
similarity index 100%
rename from bench/err696_annotate_numeric.jnl
rename to bench/v6jnls/err696_annotate_numeric.jnl
diff --git a/bench/err696_argument_blanks.jnl b/bench/v6jnls/err696_argument_blanks.jnl
similarity index 100%
rename from bench/err696_argument_blanks.jnl
rename to bench/v6jnls/err696_argument_blanks.jnl
diff --git a/bench/err696_argument_blanks_sub.jnl b/bench/v6jnls/err696_argument_blanks_sub.jnl
similarity index 100%
rename from bench/err696_argument_blanks_sub.jnl
rename to bench/v6jnls/err696_argument_blanks_sub.jnl
diff --git a/bench/err696_centerlab_restore.jnl b/bench/v6jnls/err696_centerlab_restore.jnl
similarity index 100%
rename from bench/err696_centerlab_restore.jnl
rename to bench/v6jnls/err696_centerlab_restore.jnl
diff --git a/bench/err696_contour_conset.jnl b/bench/v6jnls/err696_contour_conset.jnl
similarity index 100%
rename from bench/err696_contour_conset.jnl
rename to bench/v6jnls/err696_contour_conset.jnl
diff --git a/bench/err696_def_att.jnl b/bench/v6jnls/err696_def_att.jnl
similarity index 100%
rename from bench/err696_def_att.jnl
rename to bench/v6jnls/err696_def_att.jnl
diff --git a/bench/err696_def_ax_edges.jnl b/bench/v6jnls/err696_def_ax_edges.jnl
similarity index 100%
rename from bench/err696_def_ax_edges.jnl
rename to bench/v6jnls/err696_def_ax_edges.jnl
diff --git a/bench/err696_def_ax_f.jnl b/bench/v6jnls/err696_def_ax_f.jnl
similarity index 100%
rename from bench/err696_def_ax_f.jnl
rename to bench/v6jnls/err696_def_ax_f.jnl
diff --git a/bench/err696_e_component_mem_crptn.jnl b/bench/v6jnls/err696_e_component_mem_crptn.jnl
similarity index 100%
rename from bench/err696_e_component_mem_crptn.jnl
rename to bench/v6jnls/err696_e_component_mem_crptn.jnl
diff --git a/bench/err696_ft_calendars.jnl b/bench/v6jnls/err696_ft_calendars.jnl
similarity index 100%
rename from bench/err696_ft_calendars.jnl
rename to bench/v6jnls/err696_ft_calendars.jnl
diff --git a/bench/err696_hovmuller_mod_fill.jnl b/bench/v6jnls/err696_hovmuller_mod_fill.jnl
similarity index 100%
rename from bench/err696_hovmuller_mod_fill.jnl
rename to bench/v6jnls/err696_hovmuller_mod_fill.jnl
diff --git a/bench/err696_mem_err_report.jnl b/bench/v6jnls/err696_mem_err_report.jnl
similarity index 100%
rename from bench/err696_mem_err_report.jnl
rename to bench/v6jnls/err696_mem_err_report.jnl
diff --git a/bench/err696_mod_sub_fln.jnl b/bench/v6jnls/err696_mod_sub_fln.jnl
similarity index 100%
rename from bench/err696_mod_sub_fln.jnl
rename to bench/v6jnls/err696_mod_sub_fln.jnl
diff --git a/bench/err696_mode_cal_f.jnl b/bench/v6jnls/err696_mode_cal_f.jnl
similarity index 100%
rename from bench/err696_mode_cal_f.jnl
rename to bench/v6jnls/err696_mode_cal_f.jnl
diff --git a/bench/err696_multiple_slashes.jnl b/bench/v6jnls/err696_multiple_slashes.jnl
similarity index 100%
rename from bench/err696_multiple_slashes.jnl
rename to bench/v6jnls/err696_multiple_slashes.jnl
diff --git a/bench/err696_only_inf_lev.jnl b/bench/v6jnls/err696_only_inf_lev.jnl
similarity index 100%
rename from bench/err696_only_inf_lev.jnl
rename to bench/v6jnls/err696_only_inf_lev.jnl
diff --git a/bench/err696_plot_ax_ppl.jnl b/bench/v6jnls/err696_plot_ax_ppl.jnl
similarity index 100%
rename from bench/err696_plot_ax_ppl.jnl
rename to bench/v6jnls/err696_plot_ax_ppl.jnl
diff --git a/bench/err696_poly_over_label.jnl b/bench/v6jnls/err696_poly_over_label.jnl
similarity index 100%
rename from bench/err696_poly_over_label.jnl
rename to bench/v6jnls/err696_poly_over_label.jnl
diff --git a/bench/err696_red_keylab.jnl b/bench/v6jnls/err696_red_keylab.jnl
similarity index 100%
rename from bench/err696_red_keylab.jnl
rename to bench/v6jnls/err696_red_keylab.jnl
diff --git a/bench/err696_repeat_escapes.jnl b/bench/v6jnls/err696_repeat_escapes.jnl
similarity index 100%
rename from bench/err696_repeat_escapes.jnl
rename to bench/v6jnls/err696_repeat_escapes.jnl
diff --git a/bench/err696_return_prec.jnl b/bench/v6jnls/err696_return_prec.jnl
similarity index 100%
rename from bench/err696_return_prec.jnl
rename to bench/v6jnls/err696_return_prec.jnl
diff --git a/bench/err696_return_type.jnl b/bench/v6jnls/err696_return_type.jnl
similarity index 100%
rename from bench/err696_return_type.jnl
rename to bench/v6jnls/err696_return_type.jnl
diff --git a/bench/err696_save_noupcase.jnl b/bench/v6jnls/err696_save_noupcase.jnl
similarity index 100%
rename from bench/err696_save_noupcase.jnl
rename to bench/v6jnls/err696_save_noupcase.jnl
diff --git a/bench/err696_shade_subspan_clim.jnl b/bench/v6jnls/err696_shade_subspan_clim.jnl
similarity index 100%
rename from bench/err696_shade_subspan_clim.jnl
rename to bench/v6jnls/err696_shade_subspan_clim.jnl
diff --git a/bench/err696_singlevec_over.jnl b/bench/v6jnls/err696_singlevec_over.jnl
similarity index 100%
rename from bench/err696_singlevec_over.jnl
rename to bench/v6jnls/err696_singlevec_over.jnl
diff --git a/bench/err696_subspan_mod_in_expr.jnl b/bench/v6jnls/err696_subspan_mod_in_expr.jnl
similarity index 100%
rename from bench/err696_subspan_mod_in_expr.jnl
rename to bench/v6jnls/err696_subspan_mod_in_expr.jnl
diff --git a/bench/err696_subspan_mod_strides.jnl b/bench/v6jnls/err696_subspan_mod_strides.jnl
similarity index 100%
rename from bench/err696_subspan_mod_strides.jnl
rename to bench/v6jnls/err696_subspan_mod_strides.jnl
diff --git a/bench/err696_subspan_transforms.jnl b/bench/v6jnls/err696_subspan_transforms.jnl
similarity index 100%
rename from bench/err696_subspan_transforms.jnl
rename to bench/v6jnls/err696_subspan_transforms.jnl
diff --git a/bench/err696_time_overlay.jnl b/bench/v6jnls/err696_time_overlay.jnl
similarity index 100%
rename from bench/err696_time_overlay.jnl
rename to bench/v6jnls/err696_time_overlay.jnl
diff --git a/bench/err696_write_no_dim.jnl b/bench/v6jnls/err696_write_no_dim.jnl
similarity index 100%
rename from bench/err696_write_no_dim.jnl
rename to bench/v6jnls/err696_write_no_dim.jnl
diff --git a/bench/err69_arg_type_error.jnl b/bench/v6jnls/err69_arg_type_error.jnl
similarity index 100%
rename from bench/err69_arg_type_error.jnl
rename to bench/v6jnls/err69_arg_type_error.jnl
diff --git a/bench/err69_bad_bounds.jnl b/bench/v6jnls/err69_bad_bounds.jnl
similarity index 100%
rename from bench/err69_bad_bounds.jnl
rename to bench/v6jnls/err69_bad_bounds.jnl
diff --git a/bench/err69_const_array.jnl b/bench/v6jnls/err69_const_array.jnl
similarity index 100%
rename from bench/err69_const_array.jnl
rename to bench/v6jnls/err69_const_array.jnl
diff --git a/bench/err69_countervar_context.jnl b/bench/v6jnls/err69_countervar_context.jnl
similarity index 100%
rename from bench/err69_countervar_context.jnl
rename to bench/v6jnls/err69_countervar_context.jnl
diff --git a/bench/err69_ens_badvalue.jnl b/bench/v6jnls/err69_ens_badvalue.jnl
similarity index 100%
rename from bench/err69_ens_badvalue.jnl
rename to bench/v6jnls/err69_ens_badvalue.jnl
diff --git a/bench/err69_fill_trans.jnl b/bench/v6jnls/err69_fill_trans.jnl
similarity index 100%
rename from bench/err69_fill_trans.jnl
rename to bench/v6jnls/err69_fill_trans.jnl
diff --git a/bench/err69_isready_and_regridding.jnl b/bench/v6jnls/err69_isready_and_regridding.jnl
similarity index 100%
rename from bench/err69_isready_and_regridding.jnl
rename to bench/v6jnls/err69_isready_and_regridding.jnl
diff --git a/bench/err69_isready_bugs.jnl b/bench/v6jnls/err69_isready_bugs.jnl
similarity index 100%
rename from bench/err69_isready_bugs.jnl
rename to bench/v6jnls/err69_isready_bugs.jnl
diff --git a/bench/err69_isready_status_errmsgs.jnl b/bench/v6jnls/err69_isready_status_errmsgs.jnl
similarity index 100%
rename from bench/err69_isready_status_errmsgs.jnl
rename to bench/v6jnls/err69_isready_status_errmsgs.jnl
diff --git a/bench/err69_label_backspace.jnl b/bench/v6jnls/err69_label_backspace.jnl
similarity index 100%
rename from bench/err69_label_backspace.jnl
rename to bench/v6jnls/err69_label_backspace.jnl
diff --git a/bench/err69_letd_dsetnum.jnl b/bench/v6jnls/err69_letd_dsetnum.jnl
similarity index 100%
rename from bench/err69_letd_dsetnum.jnl
rename to bench/v6jnls/err69_letd_dsetnum.jnl
diff --git a/bench/err69_levels_v.jnl b/bench/v6jnls/err69_levels_v.jnl
similarity index 100%
rename from bench/err69_levels_v.jnl
rename to bench/v6jnls/err69_levels_v.jnl
diff --git a/bench/err69_load_big_grid.jnl b/bench/v6jnls/err69_load_big_grid.jnl
similarity index 100%
rename from bench/err69_load_big_grid.jnl
rename to bench/v6jnls/err69_load_big_grid.jnl
diff --git a/bench/err69_long_string_to_xml.jnl b/bench/v6jnls/err69_long_string_to_xml.jnl
similarity index 100%
rename from bench/err69_long_string_to_xml.jnl
rename to bench/v6jnls/err69_long_string_to_xml.jnl
diff --git a/bench/err69_multi_label_ascii.jnl b/bench/v6jnls/err69_multi_label_ascii.jnl
similarity index 100%
rename from bench/err69_multi_label_ascii.jnl
rename to bench/v6jnls/err69_multi_label_ascii.jnl
diff --git a/bench/err69_plot_vs_labs.jnl b/bench/v6jnls/err69_plot_vs_labs.jnl
similarity index 100%
rename from bench/err69_plot_vs_labs.jnl
rename to bench/v6jnls/err69_plot_vs_labs.jnl
diff --git a/bench/err69_repl_scinot.jnl b/bench/v6jnls/err69_repl_scinot.jnl
similarity index 100%
rename from bench/err69_repl_scinot.jnl
rename to bench/v6jnls/err69_repl_scinot.jnl
diff --git a/bench/err69_ribbon_by_levels.jnl b/bench/v6jnls/err69_ribbon_by_levels.jnl
similarity index 100%
rename from bench/err69_ribbon_by_levels.jnl
rename to bench/v6jnls/err69_ribbon_by_levels.jnl
diff --git a/bench/err69_ribbon_histogram.jnl b/bench/v6jnls/err69_ribbon_histogram.jnl
similarity index 100%
rename from bench/err69_ribbon_histogram.jnl
rename to bench/v6jnls/err69_ribbon_histogram.jnl
diff --git a/bench/err69_vtree_and_uvar_regrid.jnl b/bench/v6jnls/err69_vtree_and_uvar_regrid.jnl
similarity index 100%
rename from bench/err69_vtree_and_uvar_regrid.jnl
rename to bench/v6jnls/err69_vtree_and_uvar_regrid.jnl
diff --git a/bench/err69_vtree_cancel_axis.jnl b/bench/v6jnls/err69_vtree_cancel_axis.jnl
similarity index 100%
rename from bench/err69_vtree_cancel_axis.jnl
rename to bench/v6jnls/err69_vtree_cancel_axis.jnl
diff --git a/bench/err69_write_attribute.jnl b/bench/v6jnls/err69_write_attribute.jnl
similarity index 100%
rename from bench/err69_write_attribute.jnl
rename to bench/v6jnls/err69_write_attribute.jnl
diff --git a/bench/xml_header_script.jnl b/bench/v6jnls/xml_header_script.jnl
similarity index 100%
rename from bench/xml_header_script.jnl
rename to bench/v6jnls/xml_header_script.jnl
diff --git a/bench/xml_use_coads.jnl b/bench/v6jnls/xml_use_coads.jnl
similarity index 100%
rename from bench/xml_use_coads.jnl
rename to bench/v6jnls/xml_use_coads.jnl
diff --git a/bench/xml_use_numstring.jnl b/bench/v6jnls/xml_use_numstring.jnl
similarity index 100%
rename from bench/xml_use_numstring.jnl
rename to bench/v6jnls/xml_use_numstring.jnl
diff --git a/bench/bn710_bug_fixes.jnl b/bench/v7jnls/bn710_bug_fixes.jnl
similarity index 100%
rename from bench/bn710_bug_fixes.jnl
rename to bench/v7jnls/bn710_bug_fixes.jnl
diff --git a/bench/bn720_bug_fixes.jnl b/bench/v7jnls/bn720_bug_fixes.jnl
similarity index 100%
rename from bench/bn720_bug_fixes.jnl
rename to bench/v7jnls/bn720_bug_fixes.jnl
diff --git a/bench/bn721_bug_fixes.jnl b/bench/v7jnls/bn721_bug_fixes.jnl
similarity index 100%
rename from bench/bn721_bug_fixes.jnl
rename to bench/v7jnls/bn721_bug_fixes.jnl
diff --git a/bench/v7jnls/bn722_bug_fixes.jnl b/bench/v7jnls/bn722_bug_fixes.jnl
new file mode 100644
index 0000000..1f3c0c6
--- /dev/null
+++ b/bench/v7jnls/bn722_bug_fixes.jnl
@@ -0,0 +1,31 @@
+! bn721_bug_fixes.jnl
+! test various fixes that went into version 7.22
+! 9/17 *acm*
+!
+
+GO bn_reset
+GO err721_dynamic_gather
+
+GO bn_reset
+GO err721_polymark_log
+
+GO bn_reset
+GO err721_letd_with_grave
+
+GO bn_reset
+GO err721_color_levels
+
+GO bn_reset
+GO err721_dup_labels
+
+GO bn_reset
+GO err721_plotuv
+
+GO bn_reset
+GO err721_ascii_size
+
+GO bn_reset
+GO err721_dot_grid
+
+GO bn_reset
+GO err721_stride_size
diff --git a/bench/bn_agg_member_syntax.jnl b/bench/v7jnls/bn_agg_member_syntax.jnl
similarity index 97%
rename from bench/bn_agg_member_syntax.jnl
rename to bench/v7jnls/bn_agg_member_syntax.jnl
index 24f69b1..2409544 100644
--- a/bench/bn_agg_member_syntax.jnl
+++ b/bench/v7jnls/bn_agg_member_syntax.jnl
@@ -46,7 +46,7 @@ show data 5.3
 cancel data/all
 
 ! Tests for Ensembles
-let files = SPAWN("ls -1 ens*.nc")
+let files = SPAWN("ls -1 data/ens*.nc")
 ensemble my_ens = files
 sh data/members my_ens
 
diff --git a/bench/bn_aggregate_u.jnl b/bench/v7jnls/bn_aggregate_u.jnl
similarity index 100%
rename from bench/bn_aggregate_u.jnl
rename to bench/v7jnls/bn_aggregate_u.jnl
diff --git a/bench/bn_ave_of_ave.jnl b/bench/v7jnls/bn_ave_of_ave.jnl
similarity index 100%
rename from bench/bn_ave_of_ave.jnl
rename to bench/v7jnls/bn_ave_of_ave.jnl
diff --git a/bench/bn_cache_management.jnl b/bench/v7jnls/bn_cache_management.jnl
similarity index 100%
rename from bench/bn_cache_management.jnl
rename to bench/v7jnls/bn_cache_management.jnl
diff --git a/bench/bn_compressed_gather.jnl b/bench/v7jnls/bn_compressed_gather.jnl
similarity index 99%
rename from bench/bn_compressed_gather.jnl
rename to bench/v7jnls/bn_compressed_gather.jnl
index 775ae55..f8892dd 100644
--- a/bench/bn_compressed_gather.jnl
+++ b/bench/v7jnls/bn_compressed_gather.jnl
@@ -215,3 +215,6 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
 ! ... test irregular axes (unequal weighting) and see how significant are
 !     the changes in results from old Ferret (particularly on @var)
 
+
+! clean up
+set mem/siz=25.6  ! return to the default setting
diff --git a/bench/bn_compressed_gather.sub b/bench/v7jnls/bn_compressed_gather.sub
similarity index 100%
rename from bench/bn_compressed_gather.sub
rename to bench/v7jnls/bn_compressed_gather.sub
diff --git a/bench/bn_delim_datetime.jnl b/bench/v7jnls/bn_delim_datetime.jnl
similarity index 100%
rename from bench/bn_delim_datetime.jnl
rename to bench/v7jnls/bn_delim_datetime.jnl
diff --git a/bench/bn_dot_product.jnl b/bench/v7jnls/bn_dot_product.jnl
similarity index 100%
rename from bench/bn_dot_product.jnl
rename to bench/v7jnls/bn_dot_product.jnl
diff --git a/bench/bn_dynamic_gather.jnl b/bench/v7jnls/bn_dynamic_gather.jnl
similarity index 97%
rename from bench/bn_dynamic_gather.jnl
rename to bench/v7jnls/bn_dynamic_gather.jnl
index 52d9faa..b5adcd2 100644
--- a/bench/bn_dynamic_gather.jnl
+++ b/bench/v7jnls/bn_dynamic_gather.jnl
@@ -97,3 +97,6 @@ SET MODE IGNORE
 SET MODE FRUGAL:95
 SET MODE/LAST IGNORE
 
+
+! clean up
+set mem/siz=25.6  ! return to the default setting
diff --git a/bench/bn_dynamic_gather.sub b/bench/v7jnls/bn_dynamic_gather.sub
similarity index 100%
rename from bench/bn_dynamic_gather.sub
rename to bench/v7jnls/bn_dynamic_gather.sub
diff --git a/bench/bn_ez_noupcase.jnl b/bench/v7jnls/bn_ez_noupcase.jnl
similarity index 100%
rename from bench/bn_ez_noupcase.jnl
rename to bench/v7jnls/bn_ez_noupcase.jnl
diff --git a/bench/v7jnls/bn_huge_axis.jnl b/bench/v7jnls/bn_huge_axis.jnl
new file mode 100644
index 0000000..9c495ca
--- /dev/null
+++ b/bench/v7jnls/bn_huge_axis.jnl
@@ -0,0 +1,26 @@
+! bn_huge_axis
+! 9/14/17  Dynamic coordinate storage
+! Defining extra-long coordinate axes, and save to a file
+! Use a dataset with extra-long coordinate axis.
+
+! Previously this would have given a program-limit-reached error
+let yy = if y[j=1:900000] eq 10 then 10.1 else  y[j=1:900000]
+define axis/y longyax = yy
+
+let/bad=0 var = y[gy=longyax]
+
+list/j=5:15 var
+save/clobber/file=a.nc/outtype=int var
+
+! Previously issued a limit-on-storage-for-coordinates error
+can var/all
+can axis longyax
+
+use a
+show dat
+list/j=5:15 var
+list/j=899995:9000000 var
+
+! clean up. Remove our huge file
+cancel data/all
+sp rm a.nc
diff --git a/bench/bn_iin_regrid.jnl b/bench/v7jnls/bn_iin_regrid.jnl
similarity index 100%
rename from bench/bn_iin_regrid.jnl
rename to bench/v7jnls/bn_iin_regrid.jnl
diff --git a/bench/bn_plot_vs_with_time.jnl b/bench/v7jnls/bn_plot_vs_with_time.jnl
similarity index 100%
rename from bench/bn_plot_vs_with_time.jnl
rename to bench/v7jnls/bn_plot_vs_with_time.jnl
diff --git a/bench/v7jnls/bn_save_as_global.jnl b/bench/v7jnls/bn_save_as_global.jnl
new file mode 100644
index 0000000..92c5747
--- /dev/null
+++ b/bench/v7jnls/bn_save_as_global.jnl
@@ -0,0 +1,54 @@
+! bn_save_asglobal
+! 11/2017
+! Simple command to save a variable as a global attribute.
+! Works on an existing or a new file.
+
+! Write to a new file.  Gets the default global attributes.
+
+can mode upcase
+let my_extra_attribute = "Extra attribute: This file is just attributes to start with"
+save/asglobal/clobber/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+
+! Or write new attributes to a file that has data
+
+use coads_climatology
+save/clobber/file=a.nc sst[x=150:170,y=0:10]
+let my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes"
+save/asglobal/append/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+
+! Create an attribute from a file variable
+
+use maize_1
+save/append/file=a.nc/j=4/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+
+! A second write of the same attribute overwrites the attribute values
+! (append here is saying dont start a new file)
+
+save/append/file=a.nc/j=5/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+
+! Allow for various /OUTTYPE as in any SAVE command
+let another = {1, 2, 3.1}
+save/append/file=a.nc/outtype=INT/asglobal another
+sp ncdump -h a.nc
+
+
+! Intentional errors 
+set mode ignore
+set data 1
+
+! String attributes may only be single-valued
+let multistring = {"a", "b", "c", "", "e"} 
+save/asglobal/append/file=a.nc multistring
+
+! Refuse to write multi-dimensioned attributes y-t
+save/append/asglobal/x=150/outtype=float/file=a.nc sst
+
+! Also arbitrarily refuse to write more than a list of 100 values.
+set mode ignore
+save/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+
+set mode /last upcase
diff --git a/bench/bn_spawn_fail.jnl b/bench/v7jnls/bn_spawn_fail.jnl
similarity index 68%
rename from bench/bn_spawn_fail.jnl
rename to bench/v7jnls/bn_spawn_fail.jnl
index 2f7622b..4b9e4c7 100644
--- a/bench/bn_spawn_fail.jnl
+++ b/bench/v7jnls/bn_spawn_fail.jnl
@@ -5,7 +5,7 @@
 !  8/2016 *acm*
 
 sp ls notafile.nowhere
-sp grep "this text is not in the file" bn_all.jnl
+sp grep "this text is not in the file" genjnls/bn_all.jnl
 sp rm nothing.dat
-sp grep modulus non_COARDS.cdl
+sp grep modulus data/non_COARDS.cdl
 sp cp nofile.dat not_either.dat
diff --git a/bench/bn_stat_precision.jnl b/bench/v7jnls/bn_stat_precision.jnl
similarity index 100%
rename from bench/bn_stat_precision.jnl
rename to bench/v7jnls/bn_stat_precision.jnl
diff --git a/bench/bn_transp_choose.jnl b/bench/v7jnls/bn_transp_choose.jnl
similarity index 100%
rename from bench/bn_transp_choose.jnl
rename to bench/v7jnls/bn_transp_choose.jnl
diff --git a/bench/bn_true_monthly.jnl b/bench/v7jnls/bn_true_monthly.jnl
similarity index 100%
rename from bench/bn_true_monthly.jnl
rename to bench/v7jnls/bn_true_monthly.jnl
diff --git a/bench/v7jnls/bn_tseries_modulo.jnl b/bench/v7jnls/bn_tseries_modulo.jnl
new file mode 100644
index 0000000..077d889
--- /dev/null
+++ b/bench/v7jnls/bn_tseries_modulo.jnl
@@ -0,0 +1,46 @@
+! bn_tseries_modulo.jnl
+!  9/2017 TSERIES aggregations
+!
+! If a time axis lies within year 0 or year 1 they are seen by ferret
+! as modulo. For a tseries aggregation, if the entire aggregated axis
+! is still modulo, then mark it as such, but otherwise it is not modulo.
+!
+! The time axes for these files both lie within year 0.
+! The aggregation has a modulo time axis.
+
+tseries heat_0a.nc, heat_0b.nc
+show grid total_ocean_sens_heat
+
+! The file heat_01 lies in year 1 so the total TSERIES length is longer than a year.
+
+can dat/all
+tseries heat_0a.nc, heat_0b.nc, heat_01.nc
+show grid total_ocean_sens_heat
+
+! Here is the example reported by Russ Fiedler, 9/5/17, on the Ferret list. 
+! A file in year 1 and a file in year 2 were previously made into a 24-month
+! axis which was marked as modulo.
+
+can dat/all
+tseries heat_00.nc, heat_01.nc
+show grid total_ocean_sens_heat
+
+
+! What happens with files that are members of our descriptor examples?
+! (coads_clim.003 needed changing to have the same time-axis name)
+
+tseries coads_clim_irreg = coads_clim.001, coads_clim.003
+show grid sst
+list/x=180/y=0 sst
+
+! This descriptor file lists the same datasets, which each contain two
+! timesteps, but it lists S_START = S_END on the second set so it reads
+! just one timestep from coads_clim.003
+
+! The descriptor-file code does not mark the axis as modulo.
+! (Not changing this at this time.)
+
+can data/all
+use coads_clim_irreg.des
+show grid sst
+list/x=180/y=0 sst
diff --git a/bench/err700_aggT_5d.jnl b/bench/v7jnls/err700_aggT_5d.jnl
similarity index 100%
rename from bench/err700_aggT_5d.jnl
rename to bench/v7jnls/err700_aggT_5d.jnl
diff --git a/bench/err700_aggregate_from_fmrc.jnl b/bench/v7jnls/err700_aggregate_from_fmrc.jnl
similarity index 100%
rename from bench/err700_aggregate_from_fmrc.jnl
rename to bench/v7jnls/err700_aggregate_from_fmrc.jnl
diff --git a/bench/err700_aggt_dup_grids.jnl b/bench/v7jnls/err700_aggt_dup_grids.jnl
similarity index 100%
rename from bench/err700_aggt_dup_grids.jnl
rename to bench/v7jnls/err700_aggt_dup_grids.jnl
diff --git a/bench/err700_attribute_parsing.jnl b/bench/v7jnls/err700_attribute_parsing.jnl
similarity index 100%
rename from bench/err700_attribute_parsing.jnl
rename to bench/v7jnls/err700_attribute_parsing.jnl
diff --git a/bench/err700_ax_horiz.jnl b/bench/v7jnls/err700_ax_horiz.jnl
similarity index 100%
rename from bench/err700_ax_horiz.jnl
rename to bench/v7jnls/err700_ax_horiz.jnl
diff --git a/bench/err700_axis_dates.jnl b/bench/v7jnls/err700_axis_dates.jnl
similarity index 100%
rename from bench/err700_axis_dates.jnl
rename to bench/v7jnls/err700_axis_dates.jnl
diff --git a/bench/err700_clim_attr_expression.jnl b/bench/v7jnls/err700_clim_attr_expression.jnl
similarity index 100%
rename from bench/err700_clim_attr_expression.jnl
rename to bench/v7jnls/err700_clim_attr_expression.jnl
diff --git a/bench/err700_coords.jnl b/bench/v7jnls/err700_coords.jnl
similarity index 100%
rename from bench/err700_coords.jnl
rename to bench/v7jnls/err700_coords.jnl
diff --git a/bench/err700_decimate.jnl b/bench/v7jnls/err700_decimate.jnl
similarity index 100%
rename from bench/err700_decimate.jnl
rename to bench/v7jnls/err700_decimate.jnl
diff --git a/bench/err700_define_1pt_axis.jnl b/bench/v7jnls/err700_define_1pt_axis.jnl
similarity index 100%
rename from bench/err700_define_1pt_axis.jnl
rename to bench/v7jnls/err700_define_1pt_axis.jnl
diff --git a/bench/err700_fmrcdiag.jnl b/bench/v7jnls/err700_fmrcdiag.jnl
similarity index 99%
rename from bench/err700_fmrcdiag.jnl
rename to bench/v7jnls/err700_fmrcdiag.jnl
index a6f406f..02e410f 100644
--- a/bench/err700_fmrcdiag.jnl
+++ b/bench/v7jnls/err700_fmrcdiag.jnl
@@ -21,7 +21,9 @@ FRAME /FILE=forecast_actual.gif
 ! 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
diff --git a/bench/err700_inherit_all.jnl b/bench/v7jnls/err700_inherit_all.jnl
similarity index 100%
rename from bench/err700_inherit_all.jnl
rename to bench/v7jnls/err700_inherit_all.jnl
diff --git a/bench/err700_key.jnl b/bench/v7jnls/err700_key.jnl
similarity index 100%
rename from bench/err700_key.jnl
rename to bench/v7jnls/err700_key.jnl
diff --git a/bench/err700_legend_labels.jnl b/bench/v7jnls/err700_legend_labels.jnl
similarity index 100%
rename from bench/err700_legend_labels.jnl
rename to bench/v7jnls/err700_legend_labels.jnl
diff --git a/bench/err700_lev_del_symb.jnl b/bench/v7jnls/err700_lev_del_symb.jnl
similarity index 100%
rename from bench/err700_lev_del_symb.jnl
rename to bench/v7jnls/err700_lev_del_symb.jnl
diff --git a/bench/err700_levels_one_level.jnl b/bench/v7jnls/err700_levels_one_level.jnl
similarity index 100%
rename from bench/err700_levels_one_level.jnl
rename to bench/v7jnls/err700_levels_one_level.jnl
diff --git a/bench/err700_list_comma.jnl b/bench/v7jnls/err700_list_comma.jnl
similarity index 100%
rename from bench/err700_list_comma.jnl
rename to bench/v7jnls/err700_list_comma.jnl
diff --git a/bench/err700_modulo.jnl b/bench/v7jnls/err700_modulo.jnl
similarity index 100%
rename from bench/err700_modulo.jnl
rename to bench/v7jnls/err700_modulo.jnl
diff --git a/bench/err700_reg_axis_check.jnl b/bench/v7jnls/err700_reg_axis_check.jnl
similarity index 100%
rename from bench/err700_reg_axis_check.jnl
rename to bench/v7jnls/err700_reg_axis_check.jnl
diff --git a/bench/err700_ribbon_vlog.jnl b/bench/v7jnls/err700_ribbon_vlog.jnl
similarity index 100%
rename from bench/err700_ribbon_vlog.jnl
rename to bench/v7jnls/err700_ribbon_vlog.jnl
diff --git a/bench/err700_samplexy_subspan_modulo.jnl b/bench/v7jnls/err700_samplexy_subspan_modulo.jnl
similarity index 100%
rename from bench/err700_samplexy_subspan_modulo.jnl
rename to bench/v7jnls/err700_samplexy_subspan_modulo.jnl
diff --git a/bench/err700_save_mod_att.jnl b/bench/v7jnls/err700_save_mod_att.jnl
similarity index 100%
rename from bench/err700_save_mod_att.jnl
rename to bench/v7jnls/err700_save_mod_att.jnl
diff --git a/bench/err700_shade_singlecell.jnl b/bench/v7jnls/err700_shade_singlecell.jnl
similarity index 100%
rename from bench/err700_shade_singlecell.jnl
rename to bench/v7jnls/err700_shade_singlecell.jnl
diff --git a/bench/err700_time_overlay.jnl b/bench/v7jnls/err700_time_overlay.jnl
similarity index 100%
rename from bench/err700_time_overlay.jnl
rename to bench/v7jnls/err700_time_overlay.jnl
diff --git a/bench/err700_timegrat.jnl b/bench/v7jnls/err700_timegrat.jnl
similarity index 100%
rename from bench/err700_timegrat.jnl
rename to bench/v7jnls/err700_timegrat.jnl
diff --git a/bench/err700_unclosed_if.jnl b/bench/v7jnls/err700_unclosed_if.jnl
similarity index 100%
rename from bench/err700_unclosed_if.jnl
rename to bench/v7jnls/err700_unclosed_if.jnl
diff --git a/bench/err700_vs_plot_axes.jnl b/bench/v7jnls/err700_vs_plot_axes.jnl
similarity index 100%
rename from bench/err700_vs_plot_axes.jnl
rename to bench/v7jnls/err700_vs_plot_axes.jnl
diff --git a/bench/err71_2d_ave_miss0.jnl b/bench/v7jnls/err71_2d_ave_miss0.jnl
similarity index 100%
rename from bench/err71_2d_ave_miss0.jnl
rename to bench/v7jnls/err71_2d_ave_miss0.jnl
diff --git a/bench/err71_colorlevs.jnl b/bench/v7jnls/err71_colorlevs.jnl
similarity index 100%
rename from bench/err71_colorlevs.jnl
rename to bench/v7jnls/err71_colorlevs.jnl
diff --git a/bench/err71_err_attrib_overrun.jnl b/bench/v7jnls/err71_err_attrib_overrun.jnl
similarity index 100%
rename from bench/err71_err_attrib_overrun.jnl
rename to bench/v7jnls/err71_err_attrib_overrun.jnl
diff --git a/bench/err71_expr_w_const.jnl b/bench/v7jnls/err71_expr_w_const.jnl
similarity index 100%
rename from bench/err71_expr_w_const.jnl
rename to bench/v7jnls/err71_expr_w_const.jnl
diff --git a/bench/err71_isready_unknown.jnl b/bench/v7jnls/err71_isready_unknown.jnl
similarity index 100%
rename from bench/err71_isready_unknown.jnl
rename to bench/v7jnls/err71_isready_unknown.jnl
diff --git a/bench/err71_plotvs_mode_label.jnl b/bench/v7jnls/err71_plotvs_mode_label.jnl
similarity index 100%
rename from bench/err71_plotvs_mode_label.jnl
rename to bench/v7jnls/err71_plotvs_mode_label.jnl
diff --git a/bench/err71_point_average.jnl b/bench/v7jnls/err71_point_average.jnl
similarity index 100%
rename from bench/err71_point_average.jnl
rename to bench/v7jnls/err71_point_average.jnl
diff --git a/bench/err71_ppl_sho_empty.jnl b/bench/v7jnls/err71_ppl_sho_empty.jnl
similarity index 100%
rename from bench/err71_ppl_sho_empty.jnl
rename to bench/v7jnls/err71_ppl_sho_empty.jnl
diff --git a/bench/err71_prec_return.jnl b/bench/v7jnls/err71_prec_return.jnl
similarity index 100%
rename from bench/err71_prec_return.jnl
rename to bench/v7jnls/err71_prec_return.jnl
diff --git a/bench/err71_read_delim.jnl b/bench/v7jnls/err71_read_delim.jnl
similarity index 100%
rename from bench/err71_read_delim.jnl
rename to bench/v7jnls/err71_read_delim.jnl
diff --git a/bench/err71_repeat_paren.jnl b/bench/v7jnls/err71_repeat_paren.jnl
similarity index 100%
rename from bench/err71_repeat_paren.jnl
rename to bench/v7jnls/err71_repeat_paren.jnl
diff --git a/bench/err71_save_bounds.jnl b/bench/v7jnls/err71_save_bounds.jnl
similarity index 100%
rename from bench/err71_save_bounds.jnl
rename to bench/v7jnls/err71_save_bounds.jnl
diff --git a/bench/err71_save_rigid.jnl b/bench/v7jnls/err71_save_rigid.jnl
similarity index 100%
rename from bench/err71_save_rigid.jnl
rename to bench/v7jnls/err71_save_rigid.jnl
diff --git a/bench/err71_set_redirect.jnl b/bench/v7jnls/err71_set_redirect.jnl
similarity index 100%
rename from bench/err71_set_redirect.jnl
rename to bench/v7jnls/err71_set_redirect.jnl
diff --git a/bench/err71_string_and_if.jnl b/bench/v7jnls/err71_string_and_if.jnl
similarity index 100%
rename from bench/err71_string_and_if.jnl
rename to bench/v7jnls/err71_string_and_if.jnl
diff --git a/bench/err71_user_var_attrib.jnl b/bench/v7jnls/err71_user_var_attrib.jnl
similarity index 100%
rename from bench/err71_user_var_attrib.jnl
rename to bench/v7jnls/err71_user_var_attrib.jnl
diff --git a/bench/err71_uvar_strides.jnl b/bench/v7jnls/err71_uvar_strides.jnl
similarity index 100%
rename from bench/err71_uvar_strides.jnl
rename to bench/v7jnls/err71_uvar_strides.jnl
diff --git a/bench/err71_vs_constant.jnl b/bench/v7jnls/err71_vs_constant.jnl
similarity index 100%
rename from bench/err71_vs_constant.jnl
rename to bench/v7jnls/err71_vs_constant.jnl
diff --git a/bench/err71_vs_lon_over.jnl b/bench/v7jnls/err71_vs_lon_over.jnl
similarity index 100%
rename from bench/err71_vs_lon_over.jnl
rename to bench/v7jnls/err71_vs_lon_over.jnl
diff --git a/bench/v7jnls/err721_ascii_size.jnl b/bench/v7jnls/err721_ascii_size.jnl
new file mode 100644
index 0000000..72fc5a2
--- /dev/null
+++ b/bench/v7jnls/err721_ascii_size.jnl
@@ -0,0 +1,9 @@
+! err721_ascii_size.jnl
+! ACM 10/25/2017  Ticket 2567
+! Initializing an EZ dataset mis-counts the size until data is loaded
+
+file/var="t1,t2"/skip=1 err721_ascii_size.dat
+show data
+say `t1,return=iend`
+load t1
+say `t1,return=iend`
diff --git a/bench/v7jnls/err721_color_levels.jnl b/bench/v7jnls/err721_color_levels.jnl
new file mode 100644
index 0000000..1700536
--- /dev/null
+++ b/bench/v7jnls/err721_color_levels.jnl
@@ -0,0 +1,11 @@
+! err721_color_levels
+! 10/11/2017 ACM
+! Ticket 2564, setting up color palette and levels for the second
+! plot caused a STOP in PyFerret or in Ferret the gks error message
+!    gsetcolourrep()   96 Colour is outside range [0,1]
+
+
+let fcn = 0.5*COS(J[j=1:100]/30)+SIN(K[k=1:100]/20)
+fill/pal=land_sea_values/lev=vc 7000*fcn
+
+fill/pal=ocean_temp_bounds/lev=(-2,35,2) 18.5*fcn
diff --git a/bench/v7jnls/err721_dot_grid.jnl b/bench/v7jnls/err721_dot_grid.jnl
new file mode 100644
index 0000000..ba05a7c
--- /dev/null
+++ b/bench/v7jnls/err721_dot_grid.jnl
@@ -0,0 +1,43 @@
+! err721_dot_grid
+
+!!!! using dot_t(v1,v2) works fine
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot_t(v1,v2)
+
+show grid dp
+
+list dp
+
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+
+!!!! using dot(v1,v2,4) gives the correct results
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot(v1,v2,4)
+
+! It would be nice if this showed the right grid with NO t axis.
+show grid dp
+list dp
+
+! but, at least cancel axis taxis_dc is ok
+! Previously the "can axis taxis_dc" failed.
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
diff --git a/bench/v7jnls/err721_dup_labels.jnl b/bench/v7jnls/err721_dup_labels.jnl
new file mode 100644
index 0000000..3bcc544
--- /dev/null
+++ b/bench/v7jnls/err721_dup_labels.jnl
@@ -0,0 +1,26 @@
+! err721_dup_labels.jnl
+! ticket 2565
+! 10/13/17 ACM
+
+set mode logo
+use err721_dup_labels.nc
+
+! Draw time plot
+plot new_val
+ppl list labels
+
+! Overlay plots should add only the new labels needed. Ferret has 
+! always redrawn them all, which was harmless. Now, only draw the
+! ones needed for each new /overlay
+
+plot/over/vs/line/color=green/title="deployment mean"  {284.375, 285.5}, {3472.8, 3472.8}
+ppl list labels
+plot/over/vs/line/color=red/title="HC mean"  {284.375, 285.5}, {3472.9, 3472.9}
+ppl list labels
+plot/over/vs/line/color=purple/nolab {284.42, 284.42}, {3472.6, 3473.1}
+
+! This caused labels below the plot way over to the right by the line
+plot/over/vs/line/color=purple/title="purple" {285.4, 285.4}, {3472.6, 3473.1}
+ppl list labels
+
+set mode/last logo
diff --git a/bench/v7jnls/err721_dynamic_gather.jnl b/bench/v7jnls/err721_dynamic_gather.jnl
new file mode 100644
index 0000000..741e182
--- /dev/null
+++ b/bench/v7jnls/err721_dynamic_gather.jnl
@@ -0,0 +1,32 @@
+! err72_dynamic_gather.jnl
+! 9/25/2017 Ticket 2561
+! Combination of two transforms, and 
+
+cancel data/all
+cancel memory
+
+! dataset from bn_dynamic_gather.jnl
+use tmp/test_dyn_mem.nc  
+
+! w/ default amount of memory this doesn't need a split-gather
+! This result is correct
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+show memory/diag
+
+! Now use smaller memory, so it'll split/gather in the T
+! direction. The answer in v7.2 was wrong.
+cancel memory
+set mem/siz=10
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+show memory/diag
+
+! With an even smaller amount of memory, a different
+! incorrect result was listed with v7.2.
+cancel memory
+set mem/siz=1
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@SUM]
+sh mem/diag
+
+set mem/siz=25.6  ! return to the default setting
+
+
diff --git a/bench/v7jnls/err721_letd_with_grave.jnl b/bench/v7jnls/err721_letd_with_grave.jnl
new file mode 100644
index 0000000..298b5ab
--- /dev/null
+++ b/bench/v7jnls/err721_letd_with_grave.jnl
@@ -0,0 +1,13 @@
+! err721_letd_with_grave
+! 10/6/17 ACM
+! See ticket 2563. Error parsing the grave-accent expr 
+! because of the quotes around datset path and name.
+
+use "data/proleptic_gregorian.nc"
+
+! This is fine
+let/d="data/proleptic_gregorian.nc" var1 = my_data + 1
+
+! This resulted in an error
+let/d="data/proleptic_gregorian.nc" var2 = my_data - `my_data[L=@ave]`
+show data
diff --git a/bench/v7jnls/err721_plotuv.jnl b/bench/v7jnls/err721_plotuv.jnl
new file mode 100644
index 0000000..75aaa3e
--- /dev/null
+++ b/bench/v7jnls/err721_plotuv.jnl
@@ -0,0 +1,19 @@
+! err721_plotuv.jnl
+! Ticket 2566: text size of zero causes graphics library errors
+!
+
+if ($program_name"0|PyFerret>1|*>0") then set text/font=arial
+
+! In PyFerret with -nodisplay a Cairo error on the zero-length
+! text size caused an ERROR and exit. Without -nodisplay it
+! issued errors and used some nominal size 
+
+use coads_climatology
+let uwnd = sst
+let vwnd = -1*sst
+
+plot/set/x=180/y=0 uwnd,vwnd
+ppl axlsze,0,0
+ ppl plotuv 0,1
+
+if ($program_name"0|PyFerret>1|*>0") then cancel text
diff --git a/bench/v7jnls/err721_polymark_log.jnl b/bench/v7jnls/err721_polymark_log.jnl
new file mode 100644
index 0000000..9f43421
--- /dev/null
+++ b/bench/v7jnls/err721_polymark_log.jnl
@@ -0,0 +1,39 @@
+
+! err721_polymark_log.jnl
+! Ticket 2562, polymark and other polygons over log axis.
+! 9/26/17 ACM
+
+let frqs = {0.01,0.011,0.012,0.013,0.014,0.015,0.025,0.026,0.027,0.028,\
+0.029,0.03,0.031,0.032,0.033,0.08,0.108,0.135,0.193,0.194,0.195,0.196,\
+0.197,0.227,0.228,0.229,0.255,0.256,0.31,0.311,0.312,0.362,0.363,0.364}
+
+let phas = {61.099,68.796,79.686,80.292, 104.212, 121.192,93.757,\
+102.549,115.240,112.831,103.433,102.032,105.109,104.216,93.173,-7.041,\
+-133.985,-162.018,161.157,154.128,146.717,140.252,132.944,-29.014,\
+-34.848,-38.376,-109.836,-119.620,12.858,17.047,22.327,-167.776,-169.991,-165.467}
+
+! Plots with /HLOG
+set v ul
+plot/hlog/vs/vlim=-180:180:45/nolabs/hlim=0.001:0.1 frqs,phas
+go polymark poly/hlog/over/nolabs/nokey/line/pal=red frqs, phas 1 square 0.6
+
+! more dynamic range
+set v ur
+let frq2 = XCAT(frqs, 10*frqs)
+let phas2 = XCAT(phas,phas)
+plot/hlog/vs/vlim=-180:180:45/nolabs frq2, phas2
+go polymark poly/hlog/over/nolabs/nokey/line/pal=green frq2, phas2 1 delta 0.8
+
+! more decades still
+set v ll
+let var3 = XCAT(0.1*frqs, frq2)
+let phas3 = XCAT(phas,phas2)
+plot/hlog/vs/vlim=-180:180:45/nolabs var3, phas3
+go polymark poly/hlog/over/nolabs/nokey/line/pal=purple_light var3, phas3 1 star 1.1
+
+! /VLOG
+set v lr
+plot/vlog/vs/hlim=-180:180:45/nolabs phas3, var3
+go polymark poly/vlog/over/nolabs/nokey/line/pal=blue_light phas3, var3 1 circle 0.7
+
+! Note /VLOG/HLOG together make a blank plot. Not worrying about that now.
diff --git a/bench/v7jnls/err721_stride_size.jnl b/bench/v7jnls/err721_stride_size.jnl
new file mode 100644
index 0000000..46d5235
--- /dev/null
+++ b/bench/v7jnls/err721_stride_size.jnl
@@ -0,0 +1,32 @@
+! err721_stride_size.jnl
+! SHOW DATA and RETURN=isize were
+! not updated with new size on a SET AXIS/STRIDE
+! *ACM* 11/29/2017 github issue 1843
+
+use coads_climatology
+set axis/stride=5 `sst,return=xaxis`
+
+! Should show new size for x axis
+show grid sst
+say `sst,return=isize`
+
+! Restore axis, back to size 180
+cancel axis/stride `sst,return=xaxis`
+show grid sst
+say `sst,return=isize`
+
+! Irregular axis
+
+USE truemonth.nc
+say `var,return=lsize`
+SET AXIS/STRIDE=12/OFFSET=0 `var,return=taxis`  ! every January
+LIST var
+say `var,return=lsize`
+
+can axis/stride `var,return=taxis`
+sh grid var
+SET AXIS/STRIDE=12/OFFSET=2 `var,return=taxis`  ! every March
+say `var,return=lsize`
+list var
+say `var,return=lsize`
+
diff --git a/bench/err72_atts_as_vars.jnl b/bench/v7jnls/err72_atts_as_vars.jnl
similarity index 100%
rename from bench/err72_atts_as_vars.jnl
rename to bench/v7jnls/err72_atts_as_vars.jnl
diff --git a/bench/err72_sum_in_x.jnl b/bench/v7jnls/err72_sum_in_x.jnl
similarity index 100%
rename from bench/err72_sum_in_x.jnl
rename to bench/v7jnls/err72_sum_in_x.jnl
diff --git a/bench/unclosed_if.sub b/bench/v7jnls/unclosed_if.sub
similarity index 100%
rename from bench/unclosed_if.sub
rename to bench/v7jnls/unclosed_if.sub
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index ebef303..a2332e4 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -1,5 +1,5 @@
 ##
-## Environment settings for Ferret for csh users.
+## Environment settings for Ferret for C-shell users.
 ## Source this file before running ferret ('source ferret_paths.csh')
 ##
 
@@ -11,52 +11,21 @@ setenv FER_DIR "/usr/local/ferret"
 ## the directory you created for the FERRET demonstration data files (30+ Mbytes).
 setenv FER_DSETS "${FER_DIR}/fer_dsets"
 
-## Web browser for your system used in some "go" scripts
-setenv FER_WEB_BROWSER "firefox"
-
-## If "java -version" does not run from the command prompt,
-## or does not report a java 1.6.x version, the environment 
-## variable JAVA_HOME needs to be defined in order to run 
-## the ThreddsBrowser GUI.  The directory defined by this 
-## environment variable contains the java executable (version
-## 1.6.x) in the bin subdirectory (ie, bin/java).
-if ( ! $?JAVA_HOME ) then
-    ## try some common locations; 
-    if ( -x "/usr/java/latest/bin/java" ) then
-        setenv JAVA_HOME "/usr/java/latest"
-    else if ( -x "/usr/lib/jvm/java-1.6.0-sun/bin/java" ) then
-        setenv JAVA_HOME "/usr/lib/jvm/java-1.6.0-sun"
-    else if ( -x "/usr/lib/jvm/java-6-sun/bin/java" ) then
-        setenv JAVA_HOME "/usr/lib/jvm/java-6-sun"
-    endif
-    ## or comment the above out and just set your own location
-    # setenv JAVA_HOME "/my/java-1.6/home"
-endif
 
 ## =========== The remainder of this file should not need modification ===========
 ## =========== unless you want to add custom directories or sites to   ===========
 ## =========== the Ferret's defaults.                                  ===========
 
 
-## Prepend ${FER_DIR}/bin to ${PATH}
-## System Manager: If you prefer not to modify PATH here, you may comment
-## out these lines and execute the file $FER_DIR/bin/install_ferret_links
-## which will create ferret links in /usr/local/bin.
+## Add ${FER_DIR}/bin to the beginning of ${PATH}
 if ( "${PATH}" !~ "*${FER_DIR}/bin*" ) then
     setenv PATH "${FER_DIR}/bin:${PATH}"
     rehash
 endif
 
-## Space-separated list of default sites for ThreddsBrowser
-## (SET /DATA /BROWSE or its alias OPEN)
-## Assigned in this unusual way to make it easy to add/delete/rearrange sites.
-setenv FER_DATA_THREDDS ""
-setenv FER_DATA_THREDDS "${FER_DATA_THREDDS} http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml"
-setenv FER_DATA_THREDDS "${FER_DATA_THREDDS} ${FER_DSETS}"
-
 ## Space-separated lists of directories examined when searching
-## for (data, descriptor, grid, go-script) files without path components
-setenv FER_DATA ". ${FER_DSETS}/data ${FER_DIR}/go ${FER_DIR}/examples"
+## for data, descriptor, grid, go-script files without path components
+setenv FER_DATA ". ${FER_DSETS}/data ${FER_DIR}/contrib"
 setenv FER_DESCR ". ${FER_DSETS}/descr"
 setenv FER_GRIDS ". ${FER_DSETS}/grids"
 setenv FER_GO ". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
@@ -75,11 +44,6 @@ setenv FER_FONTS "${FER_DIR}/ppl/fonts"
 ## Directory for Ferret fonts (old)
 setenv PLOTFONTS "${FER_DIR}/ppl/fonts"
 
-## Directory containing threddsBrowser.jar and toolsUI.jar for ThreddsBrowser
-setenv FER_LIBS "${FER_DIR}/lib"
-
-setenv FER_DAT "${FER_DIR}"
-
 ## Faddpath: a tool to quickly add paths to the search lists
 alias Faddpath 'if ( "\!*" != "" ) then \
                    setenv FER_GO "$FER_GO \!*" \
diff --git a/bin/ferret_paths_template.sh b/bin/ferret_paths_template.sh
index 498ea8e..4932dd7 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -1,5 +1,5 @@
 ##
-## Environment settings for Ferret for bash users.
+## Environment settings for Ferret for Bourne-shell users.
 ## Source this file before running ferret ('. ferret_paths.sh')
 ##
 
@@ -11,52 +11,20 @@ export FER_DIR="/usr/local/ferret"
 ## the directory you created for the FERRET demonstration data files (30+ Mbytes).
 export FER_DSETS="${FER_DIR}/fer_dsets"
 
-## Web browser for your system used in some "go" scripts
-export FER_WEB_BROWSER="firefox"
-
-## If "java -version" does not run from the command prompt,
-## or does not report a java 1.6.x version, the environment 
-## variable JAVA_HOME needs to be defined in order to run 
-## the ThreddsBrowser GUI.  The directory defined by this 
-## environment variable contains the java executable (version
-## 1.6.x) in the bin subdirectory (ie, bin/java).
-if [ -z "$JAVA_HOME" ]; then
-    ## try some common locations; 
-    if [ -x "/usr/java/latest/bin/java" ]; then
-        export JAVA_HOME="/usr/java/latest"
-    elif [ -x "/usr/lib/jvm/java-1.6.0-sun/bin/java" ]; then
-        export JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"
-    elif [ -x "/usr/lib/jvm/java-6-sun/bin/java" ]; then
-        export JAVA_HOME="/usr/lib/jvm/java-6-sun"
-    fi
-    ## or comment the above out and just set your own location
-    # export JAVA_HOME="/my/java-1.6/home"
-fi
-
 
 ## =========== The remainder of this file should not need modification ===========
 ## =========== unless you want to add custom directories or sites to   ===========
 ## =========== the Ferret's defaults.                                  ===========
 
 
-## Prepend ${FER_DIR}/bin to ${PATH}
-## System Manager: If you prefer not to modify PATH here, you may comment
-## out these lines and execute the file $FER_DIR/bin/install_ferret_links
-## which will create ferret links in /usr/local/bin.
+## Add ${FER_DIR}/bin to the beginning of ${PATH}
 if ! echo "${PATH}" | grep -q "${FER_DIR}/bin"; then
     export PATH="${FER_DIR}/bin:${PATH}"
 fi
 
-## Space-separated list of default sites for ThreddsBrowser
-## (SET /DATA /BROWSE or its alias OPEN)
-## Assigned in this unusual way to make it easy to add/delete/rearrange sites.
-export FER_DATA_THREDDS=""
-export FER_DATA_THREDDS="${FER_DATA_THREDDS} http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml"
-export FER_DATA_THREDDS="${FER_DATA_THREDDS} ${FER_DSETS}"
-
 ## Space-separated lists of directories examined when searching
-## for (data, descriptor, grid, go-script) files without path components
-export FER_DATA=". ${FER_DSETS}/data ${FER_DIR}/go ${FER_DIR}/examples"
+## for data, descriptor, grid, go-script files without path components
+export FER_DATA=". ${FER_DSETS}/data ${FER_DIR}/contrib"
 export FER_DESCR=". ${FER_DSETS}/descr"
 export FER_GRIDS=". ${FER_DSETS}/grids"
 export FER_GO=". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
@@ -75,12 +43,6 @@ export FER_FONTS="${FER_DIR}/ppl/fonts"
 ## Directory for Ferret fonts (old)
 export PLOTFONTS="${FER_DIR}/ppl/fonts"
 
-## Directory containing threddsBrowser.jar and toolsUI.jar for ThreddsBrowser
-export FER_LIBS="${FER_DIR}/lib"
-
-## Ferret directory (old)
-export FER_DAT="${FER_DIR}"
-
 ## Faddpath: a tool to quickly add paths to the search lists
 Faddpath() { if [ -n "$*" ]
              then
diff --git a/bin/make_environment_tar b/bin/make_environment_tar
index c666ff7..763484f 100755
--- a/bin/make_environment_tar
+++ b/bin/make_environment_tar
@@ -93,7 +93,7 @@ else
     svn checkout -q ${repository}/palettes
 endif
 
-# Move files into thier proper position
+# Move files into their proper position
 echo "Doing a bit of rearranging"
 mv jnls/* .
 rm -rf jnls
diff --git a/bin/make_executable_tar b/bin/make_executable_tar
index 8290e25..f3ae14f 100755
--- a/bin/make_executable_tar
+++ b/bin/make_executable_tar
@@ -112,28 +112,6 @@ mkdir ${temp_dir}/ppl
 mkdir ${temp_dir}/ppl/fonts
 ${mycp} ${fer_files} ${temp_dir}/ppl/fonts
 
-# Copy threddsBrowser/threddsBrowser.jar
-set tb_jar = ${ferret_dir}/threddsBrowser/threddsBrowser.jar
-if ( ! -r ${tb_jar} ) then
-   echo "No threddsBrowser.jar file found ${ferret_dir}/threddsBrowser"
-   echo "Installation of threddsBrowser.jar skipped"
-   echo ""
-else
-   mkdir ${temp_dir}/lib
-   ${mycp} ${tb_jar} ${temp_dir}/lib
-#  Copy threddsBrowser/toolsUI/toolsUI-4.1.jar
-   set toolsui_jar = ${ferret_dir}/threddsBrowser/toolsUI/toolsUI-4.1.jar
-      if ( ! -r ${toolsui_jar} ) then
-      echo "No toolsUI-4.1.jar file found ${ferret_dir}/threddsBrowser/toolsUI"
-      echo ""
-      exit 1
-   endif
-   ${mycp} ${toolsui_jar} ${temp_dir}/lib
-#   Create a symbolic link to the toolsUI-4.1.jar file
-   cd ${temp_dir}/lib
-   ${mylns} toolsUI-4.1.jar toolsUI.jar
-endif
-
 # Copy pyferret files
 if ( "${pyferret_dir}" != "" ) then
    set python_dirs = ${pyferret_dir}/lib/python*
diff --git a/fer/Makefile b/fer/Makefile
index 8e07cc8..80582e1 100644
--- a/fer/Makefile
+++ b/fer/Makefile
@@ -36,6 +36,7 @@
 #  V702 1/17 *sh* dynamic mem mgmt for trac #2369 calls mem from ccr so had to
 #        stick another mem at tthe end of the FERLIBS list.  Ugly solution.
 #        Also shifted fmt after mem so that the new LIFINT8 gets picked up
+#  V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
 # 
 # include platform specific macro definitions
 #
diff --git a/fer/ccr/SOURCE_FILES b/fer/ccr/SOURCE_FILES
index fa142f1..f7ea4c2 100644
--- a/fer/ccr/SOURCE_FILES
+++ b/fer/ccr/SOURCE_FILES
@@ -28,6 +28,8 @@ free_dyn_mem.c\
 get_c_pointer.c\
 get_c_string.c\
 get_c_string_len.c\
+get_edgmem.c\
+get_linemem.c\
 get_max_c_string_len.c\
 get_mr_mem.c\
 get_ws_mem.c\
@@ -40,12 +42,12 @@ linux_routines_c.c\
 list.c\
 nullify_mr.c\
 nullify_ws.c\
+nullify_linemem.c\
 put_frame.c\
 recover_cached_2d_array_point.c\
 recover_cached_full_array.c\
 replaceable_bad_flags.c \
 replace_bad_data_sub.c \
-run_thredds_browser.c\
 save_arg_pointers.c\
 save_c_string.c\
 set_nan.c\
diff --git a/fer/ccr/get_edgmem.c b/fer/ccr/get_edgmem.c
new file mode 100644
index 0000000..ece2e8b
--- /dev/null
+++ b/fer/ccr/get_edgmem.c
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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
+ *
+ * V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+ *                Following main-memory dynamic allocation methods
+ *
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+#include "FerMem.h"
+
+void FORTRAN(get_edgmem)( double *index, long *alen, int *status )
+
+/*
+  input  - index:  Ferret line number in which to store the array pointer
+  input  - alen:   array length
+  output - status flag
+*/
+
+{
+
+  double *pointer;
+
+  pointer = (double *) FerMem_Malloc(sizeof(double) * (*alen), __FILE__, __LINE__);
+
+  if (pointer)
+    {
+      FORTRAN(store_edge_ptr) (index, alen, pointer);
+      *status = 3;
+    }
+  else
+    *status = 0;
+
+  return;
+}
+
diff --git a/fer/ccr/get_linemem.c b/fer/ccr/get_linemem.c
new file mode 100644
index 0000000..2a29571
--- /dev/null
+++ b/fer/ccr/get_linemem.c
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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
+ *
+ * V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+ *                Following main-memory dynamic allocation methods
+ *
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+#include "FerMem.h"
+
+void FORTRAN(get_linemem)( double *index, long *alen, int *status )
+
+/*
+  input  - index:  Ferret line number in which to store the array pointer
+  input  - alen:   array length
+  output - status flag
+*/
+
+{
+
+  double *pointer;
+
+  pointer = (double *) FerMem_Malloc(sizeof(double) * (*alen), __FILE__, __LINE__);
+
+  if (pointer)
+    {
+      FORTRAN(store_line_ptr) (index, alen, pointer);
+      *status = 3;
+    }
+  else
+    *status = 0;
+
+  return;
+}
+
diff --git a/fer/ccr/nullify_linemem.c b/fer/ccr/nullify_linemem.c
new file mode 100644
index 0000000..ed9b267
--- /dev/null
+++ b/fer/ccr/nullify_linemem.c
@@ -0,0 +1,30 @@
+/*
+ * use gcc -c nullify_linemem.c
+ *
+ * set the F90 array pointer to null
+ *
+ * V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+ *
+ */
+
+
+#include <stdlib.h>
+#include "ferret.h"
+
+
+void FORTRAN(nullify_linemem)( int *iaxis, int *line_or_edge )
+
+/*
+  input  - mr:  Ferret iaxis index at which to store the array pointer
+*/
+
+{
+
+  double *nul_ptr;
+
+  nul_ptr = (double *) NULL;
+
+  FORTRAN(store_nul_line_ptr) (iaxis, line_or_edge, nul_ptr);
+
+  return;
+}
diff --git a/fer/ccr/perl_read.c b/fer/ccr/perl_read.c
index 386fe4d..726756b 100644
--- a/fer/ccr/perl_read.c
+++ b/fer/ccr/perl_read.c
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include "ferret.h"
 #include "binaryRead.h"
 
 int FORTRAN(pl_read_var)(float *mem, int *lengths){
diff --git a/fer/ccr/run_thredds_browser.c b/fer/ccr/run_thredds_browser.c
deleted file mode 100644
index 77c4ce1..0000000
--- a/fer/ccr/run_thredds_browser.c
+++ /dev/null
@@ -1,276 +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.
- */
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "run_thredds_browser.h"
-
-/*
- * Interface to the FORTRAN function:
- * INTEGER FUNCTION RUN_THREDDS_BROWSER(DATASET_NAME, ERR_WARN_MSG)
- *         CHARACTER*(*) DATASET_NAME, ERR_WARN_MSG
- * where the return value is the actual length of the name in DATASET_NAME
- * if successful, 0 if canceled, -1 if error.  (See runThreddsBrowser)
- * Assumes DATASET_NAME and ERR_WARN_MSG are blank-filled when passed
- * 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.
- */
-int 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 */
-    len_dataset_name = runThreddsBrowser(dataset_name, err_warn_msg);
-
-    /* Replace the null terminators with blanks */
-    dataset_name[strlen(dataset_name)] = ' ';
-    err_warn_msg[strlen(err_warn_msg)] = ' ';
-
-    /* Return the return value from runThreddsBrowser */
-    return len_dataset_name;
-}
-
-/*
- * Verifies access to Java 6 or later (version 1.6+) and runs the ThreddsBrowser Java 
- * application.  Writes the dataset name output from ThreddsBrowser to datasetName and 
- * any warning messages are written to errWarn.  The length of datasetName is returned.
- * If the user cancels out of the ThreddsBrowser, datasetName is empty and zero is 
- * returned.  If an error occurs, datasetName is empty, -1 is returned and an error 
- * message is written to errWarn.
- *
- * Requires the environment variable FER_LIBS and the jar files
- * ${FER_LIBS}/threddsBrowser.jar (from the ThreddsBrowser Java project) and
- * ${FER_LIBS}/toolsUI.jar (from http://www.unidata.ucar.edu/software/netcdf-java/)
- */
-int runThreddsBrowser(char datasetName[], char errWarn[]) {
-    char *envVal;
-    char  javaExeName[FILENAME_MAX];
-    int   version;
-    char  errMsg[256];
-    char  classPath[2*FILENAME_MAX];
-    char *argvStack[5];
-    FILE *pipeFile;
-    pid_t childPid;
-    char  output[2*FILENAME_MAX];
-    char *strptr;
-
-    datasetName[0] = '\0';
-    errWarn[0] = '\0';
-
-    /* Check if JAVA_HOME is defined and reasonable */
-    envVal = getenv("JAVA_HOME");
-    if ( envVal != NULL ) {
-        snprintf(javaExeName, FILENAME_MAX, "%s/bin/java", envVal);
-        version = getJavaVersion(javaExeName, errMsg);
-        if ( version == -1 ) {
-            strcat(errWarn, errMsg);
-            strcat(errWarn, "WARNING: Ignoring environment variable JAVA_HOME (invalid path)\n");
-            envVal = NULL;
-       }
-        else if ( version < 6 ) {
-            strcat(errWarn, "WARNING: Ignoring environment variable JAVA_HOME (java version too old)\n");
-            envVal = NULL;
-        }
-    }
-
-    /* JAVA_HOME either undefined or unacceptable, so try java without a path */
-    if ( envVal == NULL ) {
-        strcpy(javaExeName, "java");
-        version = getJavaVersion(javaExeName, errMsg);
-        if ( version == -1 ) {
-            strcat(errWarn, errMsg);
-        }
-        if ( version < 6 ) {
-            strcat(errWarn, "ERROR: unable to find version 6 (or later) of Java\n");
-            return -1;
-        }
-    }
-
-    /* Create the class path for the jar files needed */
-    envVal = getenv("FER_LIBS");
-    if ( envVal == NULL ) {
-        strcat(errWarn, "ERROR: environment variable FER_LIBS is not defined\n");
-        return -1;
-    }
-    snprintf(classPath, 2*FILENAME_MAX, "%s/threddsBrowser.jar:%s/toolsUI.jar", envVal, envVal);
-
-    /* Run the ThreddsBrowser application */
-    argvStack[0] = javaExeName;
-    argvStack[1] = "-classpath";
-    argvStack[2] = classPath;
-    argvStack[3] = "gov.noaa.pmel.ferret.threddsBrowser.ThreddsBrowser";
-    argvStack[4] = NULL;
-
-    pipeFile = executableOutput(argvStack, &childPid, errMsg);
-    if ( pipeFile == NULL ) {
-        strcat(errWarn, errMsg);
-        return -1;
-    }
-
-    /* Get the dataset name */
-    while ( fgets(output, 2*FILENAME_MAX, pipeFile) != NULL ) {
-        if ( strncmp(output, "USE \"", 5) == 0 ) {
-            /* get the contents between the double quotes */
-            strptr = strrchr(output, '"');
-            if ( strptr > output + 4 ) {
-                *strptr = '\0';
-                strcpy(datasetName, output + 5);
-            }
-        }
-        else {
-           strcat(errWarn, output);
-        }
-    }
-
-    /* Close the read end of the pipe and reap the child process */
-    fclose(pipeFile);
-    waitpid(childPid, NULL, 0);
-
-    return strlen(datasetName);
-}
-
-/*
- * Return the Java version of the given java executable.  The version is obtained
- * from parsing the output from running the java executable with the "-version"
- * flag.  So a version string of "1.5.0_05" will return 5 and "1.6.0_20" will return 6.
- * If an error occurs, -1 is returned and an error message is written to errMsg.
- */
-int getJavaVersion(char javaExeName[], char errMsg[]) {
-    char *argvStack[3];
-    FILE *pipeFile;
-    pid_t childPid;
-    char  output[FILENAME_MAX];
-    int   versionNum;
-    int   major, minor, revision, build;
-
-    /* Run this java executable with the -version flag */
-    argvStack[0] = javaExeName;
-    argvStack[1] = "-version";
-    argvStack[2] = NULL;
-    pipeFile = executableOutput(argvStack, &childPid, errMsg);
-    if ( pipeFile == NULL ) {
-        return -1;
-    }
-
-    /* Get the version number string - note that this is printed to stderr */
-    versionNum = -1;
-    while ( fgets(output, FILENAME_MAX, pipeFile) != NULL ) {
-        if ( sscanf(output, "java version \"%d.%d.%d_%d", &major, &minor, &revision, &build) == 4 ) {
-            /* if 1.x, the version is the x */
-            if ( major == 1 ) {
-                versionNum = minor;
-            }
-        }
-    }
-
-    /* Close the read end of the pipe and reap the child process */
-    fclose(pipeFile);
-    waitpid(childPid, NULL, 0);
-
-    if ( versionNum == -1 )
-        strcpy(errMsg, "Unable to interpret the Java version\n");
-    return versionNum;
-}
-
-/*
- * Forks off a child process that becomes the executable given by exeArgv,
- * which matches the argv array given as the second argument to execvp.
- * The first argument to execvp will be exeArgv[0].  On success, the PID of
- * the child process will be returned in childPidPtr, and a FILE is returned
- * from which the combined stdout and stderr output of the execuable can be
- * read.  On error, NULL is returned, the value in childPidPtr is unchanged,
- * an error message is written to errMsg, and any child process which might
- * have been created has been killed using SIGTERM and reaped.
- */
-FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]) {
-    int   fildes[2];
-    pid_t childPid;
-    FILE *outFile;
-
-    if ( pipe(fildes) != 0 ) {
-        sprintf(errMsg, "Unable to create a pipe: %s\n", strerror(errno));
-        return NULL;
-    }
-
-    childPid = fork();
-    if ( childPid < 0 ) {
-        /* error - this is the parent and there is no child */
-        sprintf(errMsg, "Unable to fork off a child process: %s\n", strerror(errno));
-        close(fildes[0]);
-        close(fildes[1]);
-        return NULL;
-    }
-
-    if ( childPid == 0 ) {
-        /* child which never returns - close the read end of the pipe */
-        close(fildes[0]);
-
-        /* redirect stdout and stderr to the writing end of the pipe */
-        if ( (dup2(fildes[1], 1) < 0) || (dup2(fildes[1], 2) < 0) )
-            exit(1);
-
-        /* become the program given in argsStack */
-        execvp(exeArgv[0], exeArgv);
-
-        /* if execvp returns, an error has occurred */
-        exit(1);
-    }
-
-    /* parent - close the write end of the pipe */
-    close(fildes[1]);
-
-    /* create a FILE wrapping the reading end of the pipe */
-    outFile = fdopen(fildes[0], "r");
-    if ( outFile == NULL ) {
-        sprintf(errMsg, "Unable to create a FILE from a pipe file descriptor: %s\n", strerror(errno));
-        kill(childPid, SIGTERM);
-        waitpid(childPid, NULL, 0);
-        close(fildes[0]);
-        return NULL;
-    }
-
-    /* parent records the child pid and returns a FILE wrapping the reading end of the pipe to the child */
-    *childPidPtr = childPid;
-    return outFile;
-}
-
diff --git a/fer/common/EF_Util.h b/fer/common/EF_Util.h
index 1930d03..3d71036 100644
--- a/fer/common/EF_Util.h
+++ b/fer/common/EF_Util.h
@@ -38,7 +38,6 @@
 #define HI    1
 
 #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 FERR_EF_ERROR 437  /* This should match the ferr_ef_error parameter in errmsg.parm. */
 
 #define EF_VERSION 1.4
diff --git a/fer/common/binaryRead.h b/fer/common/binaryRead.h
index cf8457e..17539fa 100644
--- a/fer/common/binaryRead.h
+++ b/fer/common/binaryRead.h
@@ -1,5 +1,8 @@
 #ifndef BINARYREAD_H
 #define BINARYREAD_H
+
+#include "ferret.h"
+
 /*
  * Utility functions for reading binary data
  *
@@ -17,14 +20,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 */
@@ -63,10 +58,6 @@ typedef struct _FileInfo {
   int doSwap;			/* Swap bytes */
 } FileInfo;
 
-#ifndef FORTRAN
-#define FORTRAN(a) a##_
-#endif
-
 int  FORTRAN(br_add_var)(DFTYPE *data, int *doRead);
 void FORTRAN(br_close)(void);
 void FORTRAN(br_get_error)(char *buf);
diff --git a/fer/common/ferret.h b/fer/common/ferret.h
index 294b921..dc763a8 100644
--- a/fer/common/ferret.h
+++ b/fer/common/ferret.h
@@ -19,6 +19,7 @@
 
 #define NFERDIMS 6
 #define NFERDIMSP1 7
+#define FERR_OK 3          /* This should match the ferr_ok parameter in errmsg.parm. */
 
 /* from XPROG_STATE COMMON */
 #define TTOUT_LUN 6
@@ -59,7 +60,6 @@
 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_secure(void);
 void set_server(void);
 
@@ -111,7 +111,6 @@ void FORTRAN(recover_cached_2d_array_point)(double *array, int *dim1, int *dim2,
 void FORTRAN(recover_cached_full_array)(double *array, int *alen, double **pointer_val);
 int  FORTRAN(replaceable_bad_flags)(DFTYPE *bad1, DFTYPE *bad2);
 void FORTRAN(replace_bad_data_sub)(DFTYPE *old_bad, DFTYPE *src, int *size, DFTYPE *new_bad);
-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(save_c_string)(char *string, int *inlen, char ***fer_ptr, int *offset, int *stat);
 void FORTRAN(save_metafile_name)(char *outfile, int *length, int *bat_mode);
 void FORTRAN(set_batch_graphics)(char *outfile, int *batmode);
diff --git a/fer/common/run_thredds_browser.h b/fer/common/run_thredds_browser.h
deleted file mode 100644
index 9951db9..0000000
--- a/fer/common/run_thredds_browser.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef RUNTHREDDSBROWSER_H_
-#define RUNTHREDDSBROWSER_H_
-
-#include <sys/types.h>
-#include <stdio.h>
-#include "ferret.h" /* for FORTRAN */
-
-/* 
- * Interface to the FORTRAN function:
- * INTEGER FUNCTION RUN_THREDDS_BROWSER(DATASET_NAME, ERR_WARN_MSG)
- *         CHARACTER*(*) DATASET_NAME, ERR_WARN_MSG
- */
-int FORTRAN(run_thredds_browser)(char dataset_name[], char err_warn_msg[], int max_len_data_set, int max_len_err_warn_msg);
-
-/* Standard C functions */
-int   runThreddsBrowser(char datasetName[], char errWarn[]);
-int   getJavaVersion(char javaExeName[], char errMsg[]);
-FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]);
-
-#endif /* RUNTHREDDSBROWSER_H_ */
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 5145db9..07f0086 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -71,6 +71,8 @@
 *                  to simplify future merges of Ferret into PyFerret
 * V720 *acm*  3/17 Ticket 2512: Add STAT/PRECICISION=
 * V720 *acm*  5/17 Ticket 2530 add WIRE/COLOR= and draw the color with pen 1
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
+* V723 *acm* 11/17 New SAVE/ASGLOBAL option to write global attribute to netCDF file
 
 
 * command qualifier states
@@ -176,7 +178,8 @@
      .			slash_list_endian,
      .			slash_list_outtype,
      .			slash_list_curvi,
-     .			slash_list_layerz
+     .			slash_list_layerz,
+     .			slash_list_asglobal
 
 	INTEGER		
      .			slash_set_data_ez,
@@ -193,7 +196,6 @@
      .			slash_set_data_swap,
      .			slash_set_data_tregular,
      .			slash_set_data_delimiters,
-     .                  slash_set_data_browse,
      .                  slash_set_data_strict,
      .
      .			slash_set_var_title,
@@ -475,7 +477,8 @@
      .			slash_list_endian  = 1+52,
      .			slash_list_outtype = 1+53,
      .			slash_list_curvi   = 1+54,
-     .			slash_list_layerz   = 1+55 )
+     .			slash_list_layerz  = 1+55,
+     .			slash_list_asglobal = 1+56 )
 
 	PARAMETER     (
      .			slash_set_data_ez	= 1,
@@ -492,7 +495,6 @@
      .			slash_set_data_swap     = 12,
      .			slash_set_data_tregular = 13,
      .			slash_set_data_delimiters = 14,
-     .                  slash_set_data_browse   = 15,
      .                  slash_set_data_strict   = 16,
      .
      .			slash_set_var_title	= 1,
diff --git a/fer/common/xcommand.cmn b/fer/common/xcommand.cmn
index 5992f75..6539463 100644
--- a/fer/common/xcommand.cmn
+++ b/fer/common/xcommand.cmn
@@ -54,6 +54,7 @@
 *                  to simplify future merges of Ferret into PyFerret
 *                  /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
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
 
 
 * PARAMETERS are used to store numbers of subcommands and qualifiers for use
@@ -439,7 +440,7 @@
      .			total_num_commands	= 30,
      .			total_num_subcommands	= nsub_at31 - 1,
      .			total_num_qualifiers	= nqual_at31a - 1,
-     .	                num_predefined_alias    = 26,
+     .	                num_predefined_alias    = 25,
      .			max_queries		= 50 )
 
 * declarations
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index c682e5e..717880d 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -241,6 +241,8 @@
 *	      3/17 Added SHOW MEMORY/DIAGNOSTIC
 * V720 *acm*  3/17 Ticket 2512: Add STAT/PRECISION=
 * V720 *acm*  5/17 Ticket 2530 add WIRE/COLOR= 
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
+* V723 *acm* 11/17 New SAVE/ASGLOBAL option to write global attribute to netCDF file
 
 *
 * !!!!!!!!!!
@@ -364,7 +366,7 @@
 	   DATA subcommands      (nsub_at1 + 6)	/ 'DATA'	/
 	   DATA num_qualifs      (nsub_at1 + 6)	/ nqual1g	/
 	   DATA qualifier_pointer(nsub_at1 + 6)	/ nqual_at1g	/
-* SET DATA/FORM/GRID/TITL/SIZE/TYPE/BROWSE
+* SET DATA/FORM/GRID/TITL/SIZE/TYPE
 		DATA qualifiers  (nqual_at1g+0)	/ 'EZ'  	/
 		DATA qualifiers  (nqual_at1g+1)	/ 'VARIABLE'	/
 		DATA qualifiers  (nqual_at1g+2)	/ 'TITLE'	/
@@ -378,8 +380,8 @@
 		DATA qualifiers  (nqual_at1g+10) / 'TYPE'       / 
 		DATA qualifiers  (nqual_at1g+11) / 'SWAP'       / 
 		DATA qualifiers  (nqual_at1g+12) / 'REGULART'   /
-		DATA qualifiers  (nqual_at1g+13) / 'DELIMITE'  /
-		DATA qualifiers  (nqual_at1g+14) / 'BROWSE'     /
+		DATA qualifiers  (nqual_at1g+13) / 'DELIMITE'   /
+		DATA qualifiers  (nqual_at1g+14) / '****'       /
 		DATA qualifiers  (nqual_at1g+15) / 'STRICT'     /
 		DATA qualifiers  (nqual_at1g+16) / '****'       /
 		DATA qualifiers  (nqual_at1g+17) / '****'       /
@@ -1025,7 +1027,7 @@
 		DATA qualifiers  (nqual_at5a+53)/ 'OUTTYPE'/
 		DATA qualifiers  (nqual_at5a+54)/ 'CURVILIN'/
 		DATA qualifiers  (nqual_at5a+55)/ 'LAYERZ'/
-		DATA qualifiers  (nqual_at5a+56)/ '****'/
+		DATA qualifiers  (nqual_at5a+56)/ 'ASGLOBAL'/
 		DATA qualifiers  (nqual_at5a+57)/ '****'/
 		DATA qualifiers  (nqual_at5a+58)/ '****'/
 		DATA qualifiers  (nqual_at5a+59)/ '****'/
@@ -1851,34 +1853,31 @@
      .		alias_name(19)	/ 'KEYMARK' /,
      .		alias_len(19)	/ 23 /,
      .		alias(19)	/ 'PPL SHAKEY 1,,,,,,,,,,' /
-     .		alias_name(20)	/ 'OPEN' /,
-     .		alias_len(20)	/ 16 /,
-     .		alias(20)	/ 'SET DATA /BROWSE' /
-     .		alias_name(21)	/ 'RIBBON' /,
-     .		alias_len(21)	/ 11 /,
-     .		alias(21)	/ 'PLOT/RIBBON' /
-     .		alias_name(22)	/ 'ENSEMBLE' /,
+     .		alias_name(20)	/ 'RIBBON' /,
+     .		alias_len(20)	/ 11 /,
+     .		alias(20)	/ 'PLOT/RIBBON' /
+     .		alias_name(21)	/ 'ENSEMBLE' /,
+     .		alias_len(21)	/ 22 /,
+     .		alias(21)	/ 'DEFINE DATA/AGGREGAT/E' /
+     .		alias_name(22)	/ 'FMRC' /,
      .		alias_len(22)	/ 22 /,
-     .		alias(22)	/ 'DEFINE DATA/AGGREGAT/E' /
-     .		alias_name(23)	/ 'FMRC' /,
-     .		alias_len(23)	/ 22 /,
-     .		alias(23)	/ 'DEFINE DATA/AGGREGAT/F' /
-     .		alias_name(24)	/ 'VTREE' /,
-     .		alias_len(24)	/ 13 /,
-     .		alias(24)	/ 'SHOW VAR/TREE' /,
-     .		alias_name(25)	/ 'TSERIES' /,
+     .		alias(22)	/ 'DEFINE DATA/AGGREGAT/F' /
+     .		alias_name(23)	/ 'VTREE' /,
+     .		alias_len(23)	/ 13 /,
+     .		alias(23)	/ 'SHOW VAR/TREE' /,
+     .		alias_name(24)	/ 'TSERIES' /,
+     .		alias_len(24)	/ 22 /,
+     .		alias(24)	/ 'DEFINE DATA/AGGREGAT/T' /
+     .		alias_name(25)	/ 'UNION' /,
      .		alias_len(25)	/ 22 /,
-     .		alias(25)	/ 'DEFINE DATA/AGGREGAT/T' /
-     .		alias_name(26)	/ 'UNION' /,
-     .		alias_len(26)	/ 22 /,
-     .		alias(26)	/ 'DEFINE DATA/AGGREGAT/U' /
+     .		alias(25)	/ 'DEFINE DATA/AGGREGAT/U' /
 
         DATA
      .		(alias_name(i),i=num_predefined_alias+1,150)
-     .                   / 124*unspecified_name4 /,
-     .		(alias_len(i),i=num_predefined_alias+1,150) / 124*4 /,
+     .                   / 125*unspecified_name4 /,
+     .		(alias_len(i),i=num_predefined_alias+1,150) / 125*4 /,
      .		(alias(i),i=num_predefined_alias+1,150)
-     .                   / 124*unspecified_name4 /
+     .                   / 125*unspecified_name4 /
 
 
 	DATA queries(1) / 'STATUS' /,
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index 55903ca..5b20d6a 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -138,13 +138,16 @@
 * v7.12    5/11/2017 
 * v7.13    6/ 6/2017  fixes to tickets 2538, 2539
 * v7.20    7/11/2017 7.20 release
+* v7.21    9 /2017 7.21 release
+* v7.22    9/14/2017 7.22 dnamic coordinate storage
+* v7.3     11/30/2017 Release 
 
         IMPLICIT NONE
 	include	'xrevision.cmn'
 
 	DATA program_name	/ 'FERRET' /
 	DATA len_program_name	/  6       /
-	DATA revision_level	/  7.21   /
+	DATA revision_level	/  7.3   /
 
 ! Note we can put a debug title in the Ferret startup header lines
 ! by putting a title into the Makefile: $(MAKE) "DEBUG_TITLE=beta" update
diff --git a/fer/efi/eof_space.F b/fer/efi/eof_space.F
index 0836876..c6c5db8 100644
--- a/fer/efi/eof_space.F
+++ b/fer/efi/eof_space.F
@@ -106,7 +106,12 @@
 *                                            USER CONFIGURABLE PORTION |
 *                                                                      |
 *                                                                      V
-c      CALL ef_set_desc(id, 'Compute EOF spacial fields from XYT field')
+
+* These funtions aren't quite right under double precision. Tolerances
+* and epsilons need to be set correctly for double precision computation.
+
+c      CALL ef_set_desc(id,
+c     .    'Compute EOF spacial fields from XYT field, gappy in T')
       CALL ef_set_desc(id, 'Function NOT AVAILABLE in this Ferret version')
 
       CALL ef_set_num_args(id, 2)
diff --git a/fer/efi/eof_stat.F b/fer/efi/eof_stat.F
index 5f5c220..fb3fa21 100644
--- a/fer/efi/eof_stat.F
+++ b/fer/efi/eof_stat.F
@@ -113,9 +113,12 @@
 *                                                                      |
 *                                                                      V
 
-      CHARACTER*100 fcn_desc
+* These funtions aren't quite right under double precision. Tolerances
+* and epsilons need to be set correctly for double precision computation.
 
-c   10 FORMAT ('EOF statistics from XYT field. j=1:#EOFs, ',
+c      CHARACTER*100 fcn_desc
+c
+c   10 FORMAT ('EOF statistics from XYT field, gappy in T. j=1:#EOFs, ',
 c     .        'j=2:%variation, j=3:eigenvalues' )
 c      WRITE (fcn_desc, 10) 
 c      CALL ef_set_desc(id, fcn_desc)
diff --git a/fer/efi/eof_tfunc.F b/fer/efi/eof_tfunc.F
index 5a60283..1a16782 100644
--- a/fer/efi/eof_tfunc.F
+++ b/fer/efi/eof_tfunc.F
@@ -104,8 +104,12 @@
 *                                            USER CONFIGURABLE PORTION |
 *                                                                      |
 *                                                                      V
+
+* These funtions aren't quite right under double precision. Tolerances
+* and epsilons need to be set correctly for double precision computation.
+
 c      CALL ef_set_desc(id,
-c     .   'Compute EOF time functions from XYT field.')
+c     .   'Compute EOF time functions from XYT field. gappy in T.')
       CALL ef_set_desc(id, 'Function NOT AVAILABLE in this Ferret version')
 
       CALL ef_set_num_args(id, 2)
@@ -394,7 +398,6 @@ c     .   'Compute EOF time functions from XYT field.')
      .        iw, jw, kw, lw, mw, nw
       REAL frac_timeser
 
-
       WRITE (err_msg,*)
      .  'Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC'
       CALL ef_bail_out (id, err_msg)
diff --git a/fer/efi/eofsvd_space.F b/fer/efi/eofsvd_space.F
index abbd921..90e3765 100644
--- a/fer/efi/eofsvd_space.F
+++ b/fer/efi/eofsvd_space.F
@@ -88,7 +88,7 @@
 *                                            USER CONFIGURABLE PORTION |
 *                                                                      |
 *                                                                      V
-      CALL ef_set_desc(id, 'Return SVD EOF spacial fields from XYT field')
+      CALL ef_set_desc(id, 'Return SVD EOF spatial fields from XYT field')
 
       CALL ef_set_num_args(id, 1)
 
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 824b8e1..2c0727b 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -42,7 +42,6 @@ escape_for_xml.F\
 fill_fmrc_time_gaps.F\
 finalize_ferret.F\
 float2string_for_xml.F\
-get_dataset_name.F\
 get_fer_command.F\
 get_fvars_list_by_attname_and_val.F\
 get_context_mods.F\
diff --git a/fer/gnl/build_t_agg_axis.F b/fer/gnl/build_t_agg_axis.F
index a6caecf..5d4f6a2 100644
--- a/fer/gnl/build_t_agg_axis.F
+++ b/fer/gnl/build_t_agg_axis.F
@@ -57,6 +57,7 @@
 * 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.
+* V72 8/17 *acm*   For trac enhancement #767 -- dynamic coordinate storage
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -74,6 +75,8 @@
 	include 'xcontext.cmn'
 	include 'xfr_grid.cmn'
 	include 'interp_stack.parm'
+	include 'calendar.decl'
+	include 'calendar.cmn'
 	include 'netcdf.inc'
 
 
@@ -99,7 +102,7 @@
 * Argument definitions
 	LOGICAL		t_regular, use_strict
 	INTEGER		nagfiles, dset_num, status
-	INTEGER		memb_nsteps(nagfiles), memb_order(nagfiles)
+	INTEGER		memb_nsteps(nagfiles), memb_order(nagfiles), memb_tline(nagfiles)
 	REAL*8		memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
 	CHARACTER*512	memb_filename(nagfiles)
 
@@ -108,15 +111,18 @@
 	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,
+     .		taxis, nsteps, dtype, vlen, blen,
+     .		i, ifile, istep, ivar, TMAP_status,
      .		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, 
-     .		nsteps_trumon
-	REAL	TM_WORLD_AX, T0_ADJUST,
+     .		nsteps_trumon, iline, sumstep, bigline
+	REAL	TM_WORLD_AX, T0_ADJUST, GET_LINE_COORD, TM_WW_AXLEN,
+     .		SECS_FROM_BC, 
      .		tt, delta, highest_tstep, dfirst_delta, 
-     .		depsilon, start, tunit, coord_hi, hdel, coord_new
+     .		depsilon, start, tunit, hdel, tstep, tedge, tn, 
+     .		memb_sort(nagfiles), axwwlen, bc_to_t0, secsperyear, 
+     .		secs2start, timefac
 	CHARACTER LEFINT*20, lname*20, vname*64, bname*12, units_str*128,
      .		  calendar_str*128, agg_t0_str*20, file_t0_str*20
 
@@ -125,13 +131,17 @@
 	REAL	depsilon_46
 	PARAMETER (depsilon_46 = 2.**(-46)) 
 
+* initialize
+	DO i = 1, nagfiles 
+	   memb_tline(i) = unspecified_int4
+	ENDDO
+
 * initialize using information from the first file of the aggregation
 	taxis          = ds_time_axis(dset_num)
 	IF (taxis .EQ. mnormal) GOTO 5050   ! no time axis?
 	nsteps         = line_dim(taxis) ! n steps in first file ... will grow
 	vname          = line_name_orig(taxis)
 	vlen           = TM_LENSTR1(vname)
-	max_line_available = maxlinestore
 	dtype          = unspecified_int4  ! irrelevant from older netCD
 	need_midpoints = .FALSE.           ! assume cell edges are provided
 	agg_unit_code  = line_unit_code(taxis)
@@ -145,238 +155,47 @@
 * new. 
 
 * Was the first file found to have a true-monthly time axis?
-c	true_month = ITSA_TRUEMONTH_AXIS (taxis)
+* (see old versions of this in SVN and update them, if we want to do true-month axis handling.)
+
 	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
+* Put the first datasets timesteps into a new line. We will put the final
+* aggregated time axis into the line taxis at the end.
+
+	CALL TM_ALLO_TMP_LINE(iline, status)
+	memb_tline(1) = iline
+	CALL GET_LINE_DYNMEM (nsteps, iline, status)
+	IF (status .NE. ferr_ok) GOTO 5100
 
 * set up for a regular or irregular T-agg axis as requested by t_regular
+
 	IF (t_regular .AND. .NOT.line_regular(taxis)) THEN
 	   CALL WARN('/T_REGULAR NOT YET IMPLEMENTED')
 ! T_REGULAR HAS NEVER BEEN TESTED
 !* ... convert the irregular t axis of 1st file into a forced-regular axis
-!	   line_start(taxis) = line_mem(line_subsc1(taxis))
+!	   line_start(taxis) = GET_LINE_COORD (lineedg(taxis)%ptr, 1)
 !	   line_regular(taxis) = .TRUE.
-!* !! TODO: WE SHOULD REALLY GARBAGE COLLECT THE ABANDONED SPACE OCCUPIED BY
-!*          THE IRREGULAR COORDINATES OF THE FIRST FILE IN THE T-AGG
-!*          SEE PACK_LINE_STORAGE
-!* quik garb collect if T-axis happens to be the last one in memory
-!	   IF (next_line_mem_pos .EQ. line_subsc1(taxis) + nsteps) THEN
-!	      next_line_mem_pos = line_subsc1(taxis) ! ouch! orphan some coords
-!	      line_subsc1(taxis) =  unspecified_int4
-!	   ENDIF
+
+!* !! TODO: cancel the dynamic line storage for taxis,...
+
 	ELSEIF (.NOT.t_regular .AND. line_regular(taxis)) THEN
 * ... convert the so-far regular 1st file axis into a forced-irregular axis
-	   IF (next_line_mem_pos+2*line_dim(taxis)+1
-     .					.GT.maxlinestore) GOTO 5100
+
 	   line_regular(taxis) = .FALSE.
-	   line_subsc1(taxis) = next_line_mem_pos
-	   DO istep = 0, nsteps-1
-	      line_mem(next_line_mem_pos+istep) = line_start(taxis)
-     .		+ istep*line_delta(taxis)
+	   
+	   DO istep = 1, nsteps
+	      CALL PUT_LINE_COORD ( linemem(iline)%ptr, istep, line_start(taxis)
+     .		+ (istep-1)* line_delta(taxis) )
 	   ENDDO
-	   line_delta(taxis) = unspecified_val8
+	   line_delta(iline) = unspecified_val8
 	   need_midpoints = .TRUE.
+	
 	ELSEIF (.NOT.t_regular .AND. .NOT.line_regular(taxis)) THEN
-* ... make sure this axis is the last one currently stored in line_mem
-	   IF (next_line_mem_pos .GT. line_subsc1(taxis) + 2*nsteps + 1)
-     .								THEN
-* !! TODO: WE SHOULD REALLY GARBAGE COLLECT THE ABANDONED SPACE OCCUPIED BY
-*          THE ORIGINAL IRREGULAR COORDINATES OF THE FIRST FILE IN THE T-AGG
-*          SEE PACK_LINE_STORAGE
-* ... copy the time steps and bounds from the first file to the top
-	      DO istep = 0, 2*nsteps
-	         line_mem(next_line_mem_pos+istep)
-     .	                            = line_mem(line_subsc1(taxis)+istep)
-	      ENDDO
-	      line_subsc1(taxis) = next_line_mem_pos
-	   ENDIF
-* ... copy the cell boundaries to high memory in reversed order
-	   max_line_available = max_line_available - nsteps
-	   ilo = line_subsc1(taxis) + nsteps
-	   ihi = max_line_available + nsteps
-	   DO istep = 0, nsteps
-	      line_mem(ihi) = line_mem(ilo)
-	      ilo = ilo+1
-	      ihi = ihi-1
-	   ENDDO
-
+	    CALL COPY_LINE_COORDS (linemem(taxis)%ptr, linemem(iline)%ptr, nsteps)
+	    CALL COPY_LINE_COORDS (lineedg(taxis)%ptr, lineedg(iline)%ptr, nsteps+1)
 	ENDIF
 
-**************
+**
 * Loop through the files of the aggregation, appending time step values.
 * Different logic applies if the caller passed in the time axis metadata.
 * Because the length of the aggregated T axis is not in general known until
@@ -386,11 +205,14 @@ c	ENDIF
 * of the line_mem array working backwards, copying them into their proper
 * position after the cell marker coordinates are all in place.
 
+
+! dynamic coord storage:  How to do this? define temporary lines and aggregate them when all done?
+
 	IF (memb_nsteps(1) .NE. unspecified_int4) THEN
 
 !!!!! THIS LOGIC HAS NOT BEEN TESTED -- INTENDED FOR PYTHON INTERFACE
 
-***
+
 * time metadata has been provided by caller (i.e. python program)
 * note that the metadata of the first file is ignored since already read
 * directly from the file, itself
@@ -404,32 +226,33 @@ c	ENDIF
 !	      ENDDO
 	   ELSE
 	      DO ifile = 2, nagfiles
-	         line_dim(taxis) = line_dim(taxis) + memb_nsteps(ifile)
-	         IF (next_line_mem_pos+line_dim(taxis)+memb_nsteps(ifile)
-     .			.GT.maxlinestore)			GOTO 5100
+
 	         IF (memb_nsteps(ifile) .GT. 1 ) THEN
 	            delta = (memb_tstep_end(ifile) - memb_tstep_start(ifile))
      .		       / (memb_nsteps(ifile)-1)
 	         ELSE
 	            delta = 0.0
 	         ENDIF
-	         DO istep = 0, memb_nsteps(ifile)-1
-	            line_mem(next_line_mem_pos+line_dim(taxis)+istep) 
-     .		         = memb_tstep_start(ifile) + delta*istep
-	         ENDDO
+c	         DO istep = 0, memb_nsteps(ifile)-1
+c	            line_mem(next_line_mem_pos+line_dim(taxis)+istep) 
+c     .		         = memb_tstep_start(ifile) + delta*istep
+c  untested....
+c	            CALL PUT_LINE_COORD ( linemem(iline)%ptr, istep, line_start(taxis)
+c     .		      + (istep-1)* line_delta(taxis) )
+
+c	         ENDDO
 	         line_dim(taxis) = line_dim(taxis) + memb_nsteps(ifile)
 	      ENDDO
 	      need_midpoints = .TRUE.
 	   ENDIF
 	ELSE
 
-
-***
 * time metadata has not been provided - we must read it from the files
 * insert the metadata of the first file (so far opened as netCDF dataset)
-	   memb_nsteps     (1) = nsteps
-	   memb_tstep_start(1) = TM_WORLD_AX(1,     taxis,box_middle) 
-	   memb_tstep_end  (1) = TM_WORLD_AX(nsteps,taxis,box_middle) 
+	   ifile = 1
+	   memb_nsteps     (ifile) = nsteps
+	   memb_tstep_start(ifile) = GET_LINE_COORD (linemem(iline)%ptr, 1)
+	   memb_tstep_end  (ifile) = GET_LINE_COORD (linemem(iline)%ptr, nsteps)
 
 	   IF (t_regular) THEN
 	      CALL WARN('/T_REGULAR NOT YET IMPLEMENTED')
@@ -466,6 +289,7 @@ c	ENDIF
 !	         IF ( status .NE. merr_ok ) GOTO 5010
 !	      ENDDO
 	   ELSE
+
 	      DO ifile = 2, nagfiles
 * ... first read the length of the time axis from the file to be aggregated
 	         CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
@@ -483,27 +307,29 @@ c	ENDIF
      .				          file_unit_code, file_t0_str,
      .					  agg_unit_code,  agg_t0_str, status )
 	         memb_nsteps(ifile) = nsteps
-	         max_line_available = max_line_available-(nsteps+1) ! n+1 edges
-	         IF (next_line_mem_pos+line_dim(taxis)+nsteps
-     .			.GT.max_line_available)			GOTO 5100
+
+* grab a temporary dynamic axis slot for it
+	         CALL TM_ALLO_TMP_LINE(iline, status)
+		 memb_tline(ifile) = iline
+
+		 CALL GET_LINE_DYNMEM (nsteps, iline, status)
+		 IF (status .NE. ferr_ok) GOTO 5100
+
 * ... read the array of time steps from the file
-	         isubsc1 = line_subsc1(taxis)+line_dim(taxis)
 	         CALL CD_RD_R8_ARR(cdfid, vid,1, nsteps,dtype,vname(:vlen),
-     .				   line_mem(isubsc1), status)
+     .				   linemem(iline)%ptr, 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
-	               line_mem(istep) = T0_ADJUST(line_mem(istep))
+	            DO istep = 1, nsteps
+		       tstep = GET_LINE_COORD (linemem(iline)%ptr, istep)
+	               CALL PUT_LINE_COORD ( linemem(iline)%ptr, istep, T0_ADJUST(tstep))
 	            ENDDO
 	         ENDIF
 
-	         line_dim(taxis) = line_dim(taxis) + nsteps
-	         memb_tstep_start(ifile) = line_mem(isubsc1)
-	         memb_tstep_end  (ifile) = line_mem(isubsc1+nsteps-1)
+	         memb_tstep_start(ifile) = GET_LINE_COORD (linemem(iline)%ptr, 1)
+	         memb_tstep_end  (ifile) = GET_LINE_COORD (linemem(iline)%ptr, nsteps)
 
 	         IF (bounds_id .EQ. unspecified_int4) THEN
 * ... cell boundaries NOT available in this file
@@ -534,7 +360,7 @@ c	ENDIF
 
                     CALL CD_RD_R8_BNDS( cdfid, bounds_id,
      .			  startpts, numpts, dtype, bname(:blen),
-     .                    line_mem(max_line_available),  
+     .                    lineedg(iline)%ptr,  
      .                    d1s, d1e, d2s, d2e, status )
                     IF ( status .NE. merr_ok ) GOTO 5010
 
@@ -551,25 +377,16 @@ c	ENDIF
 
                     CALL CD_RD_R8_BNDS( cdfid, bounds_id,
      .			  startpts, numpts, dtype,  bname(:blen),
-     .                    line_mem(max_line_available+nsteps),  
+     .                    tedge,  
      .                    d1s, d1e, d2s, d2e, status )
                     IF ( status .NE. merr_ok ) GOTO 5010
-
-* ... 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)
-	               line_mem(ilo) = line_mem(ihi)
-	               line_mem(ihi) = tt
-	            ENDDO
+		    CALL PUT_LINE_COORD ( lineedg(iline)%ptr, nsteps+1, tedge)
 
 * ... adjust the bounds values to the agg-wide "<units> since <T0>"
 	            IF (need_T0_adjust) THEN
-	               DO istep = max_line_available, max_line_available+nsteps
-	                  line_mem(istep) = T0_ADJUST(line_mem(istep))
+	               DO istep = 1, nsteps+1
+		          tstep = GET_LINE_COORD (lineedg(iline)%ptr, istep)
+	                  CALL PUT_LINE_COORD ( lineedg(iline)%ptr, istep, T0_ADJUST(tstep))
 	               ENDDO
 	            ENDIF
 	         ENDIF
@@ -578,149 +395,159 @@ c	ENDIF
 	      ENDDO    ! end of member file loop
 	   ENDIF
 	ENDIF
-	nsteps = line_dim(taxis)   ! length of aggregated axis
 
-****** START: check over and finalize the aggregation time axis
+* START: check over and finalize the aggregation time axis
 	IF (.NOT.t_regular) THEN
 
-	   IF (.NOT.need_midpoints) THEN
-* explicit cell boundaries have been stored in high line_mem indices
-* note that instead of nsteps+1 edges, at this point we have nsteps+nagfiles
-* because each member file has contributed both a low and a hgh edge
-* we have held onto the extra points because the member order may be re-sorted
-*   1. reorder the cell bounds back to forwards order
-*   2. move the cell bounds from temporary storage to their normal position
-
-* ... 1. reorder the bounds to forward order
-	      ilo = max_line_available
-	      ihi = ilo + nsteps + nagfiles - 1
-	      DO istep = 0, (nsteps+nagfiles)/2
-	         tt = line_mem(ilo)
-	         line_mem(ilo) = line_mem(ihi)
-	         line_mem(ihi) = tt
-	         ilo = ilo + 1
-	         ihi = ihi - 1
-	         IF (ihi .LT. ilo) EXIT  ! exit loop; 1-point axes casuses this
-	      ENDDO
+* if the files as provided were out of order, then sort them here
+* sort the time coordinates and bounds in line_mem to match the sort order
+* on return, memb_order has been set, and nsteps is the sum of steps in all files
+
+	   DO i = 1, nagfiles
+	      memb_sort(i) = memb_tstep_start(i)
+	   ENDDO
+	   CALL SORT_TSERIES_DSETS(nagfiles, nsteps, need_midpoints, 
+     .				   memb_nsteps, memb_order, memb_sort )
+
+* combine the coordinates for all lines in orde
+ 
+           CALL TM_ALLO_TMP_LINE(bigline, status)
+	   CALL GET_LINE_DYNMEM (nsteps, bigline, status)
+	   IF (status .NE. ferr_ok) GOTO 5100
+	   
+	   line_dim(bigline) = nsteps
+
+	   i = 1
+	   ifile = memb_order(i)
+	   iline = memb_tline(ifile)
+	   sumstep = memb_nsteps(ifile)
+
+           CALL COPY_LINE_COORDS (linemem(iline)%ptr, linemem(bigline)%ptr, sumstep)
+
+* Copy the edges, (but not the uppermost one?  Or, as we fill them in, check the upper
+* bound from each member set matches or not inconsistent with the lower of the next??
+           IF (.NOT. need_midpoints) 
+     .        CALL COPY_LINE_COORDS (lineedg(iline)%ptr, lineedg(bigline)%ptr, sumstep)
+
+C check for overlap? done in the sort?
+c	   tlast = GET_LINE_COORD (linemem(bigline)%ptr, istep)   ! last time coordinate
+c	   elast = GET_LINE_COORD (lineedg(bigline)%ptr, istep+1) ! upper gridcell edge
+C check for overlap???
+
+	   DO i = 2, nagfiles
+	      ifile = memb_order(i)
+	      iline = memb_tline(ifile)
+
+	      DO istep = 1, memb_nsteps(ifile)
+	         sumstep = sumstep + 1
+	         tstep =  GET_LINE_COORD (linemem(iline)%ptr, istep)
+	         CALL PUT_LINE_COORD ( linemem(bigline)%ptr, sumstep, tstep)
+
+		 IF (.NOT.need_midpoints) THEN
+	            tstep =  GET_LINE_COORD (lineedg(iline)%ptr, istep)
+	            CALL PUT_LINE_COORD ( lineedg(bigline)%ptr, sumstep, tstep)
+		 ENDIF
 
-* ... 2. shift the bounds down to sit just after the coordinates
-	      ilo = line_subsc1(taxis) + nsteps
-	      ihi = max_line_available
-	      DO istep = 0, nsteps+nagfiles-1
-	         line_mem(ilo) = line_mem(ihi)
-	         line_mem(ihi) = bad_val4        ! for good house-keeping
-	         ilo = ilo + 1
-	         ihi = ihi + 1
 	      ENDDO
-	   ENDIF
 
-* if the fileas as provided were out of order, then sort them here
-* sort the time coordinates and bounds in line_mem to match the sort order
-	   CALL SORT_TSERIES_DSETS(nagfiles, nsteps, need_midpoints, 
-     .				   memb_nsteps, memb_order,
-     .				   line_mem(line_subsc1(taxis)),
-     .				   line_mem(line_subsc1(taxis)+nsteps) )
+	   ENDDO
 
-* deal with cell boundaries
-	   next_line_mem_pos =  next_line_mem_pos + 2*nsteps + 1
+* Uppermost cell edge.
+
+	   IF (.NOT.need_midpoints) THEN
+	      tstep =  GET_LINE_COORD (lineedg(iline)%ptr, memb_nsteps(nagfiles)+1)
+	      CALL PUT_LINE_COORD ( lineedg(bigline)%ptr, sumstep+1, tstep)
+	   ENDIF
 
+* deal with cell boundaries
 * ... compute time midpoints if not supplied
-	   IF (need_midpoints) THEN
-	      IF (line_subsc1(taxis)+2*nsteps+1.GT.maxlinestore) GOTO 5100
-	      CALL TM_IRREGAX_MID(line_subsc1(taxis), nsteps)
+	   IF (need_midpoints) 
+     .        CALL TM_IRREGAX_MID( linemem(bigline)%ptr, lineedg(bigline)%ptr, nsteps )
 
-	   ELSE
+* We have now gathered all the coordinates. Re-allocate taxis and put them there,
+* so all the grid setup remains as is
 
-* remove the duplicated cell edges: top of file k duplicates bottom of file k+1
-*    istep counts time steps in the aggregated time axis 
-*    ifile counts the member files
-*    imemb counts the time step in the member current file
 
-	      ilo = line_subsc1(taxis) + nsteps
-	      i = 1
-	      ifile = memb_order(i)
-	      imemb = memb_nsteps(ifile) ! start at top of first file
-	      istep = imemb
-	      DO WHILE (istep .LE. nsteps)
-	         istep = istep + 1
-	         imemb = imemb + 1
-	         IF (imemb .GT. memb_nsteps(ifile)) THEN
-*     ... start of next member file
-*     ... skipping the top cell edge of each file
-	            i = i + 1
-	            IF (i .LE. nagfiles) ifile = memb_order(i)
-	            imemb = 1
-	         ENDIF
-	         l = ilo + istep
-	         line_mem(l) = line_mem(l+i-1)
-	      ENDDO
-* ... copy (dont skip) the upper edge of the aggregate axis
-	      line_mem(l+1) = line_mem(l+i)
-	   ENDIF
+	   CALL FREE_LINE_DYNMEM (taxis)
+	   CALL GET_LINE_DYNMEM (nsteps, taxis, status)
+	   IF (status .NE. ferr_ok) GOTO 5100
+
+           CALL COPY_LINE_COORDS (linemem(bigline)%ptr, linemem(taxis)%ptr, sumstep)
+           CALL COPY_LINE_COORDS (lineedg(bigline)%ptr, lineedg(taxis)%ptr, sumstep+1)
+	   CALL TM_DEALLO_DYN_LINE(bigline)
+	   CALL FREE_LINE_DYNMEM (bigline)
+
+	   line_dim(taxis) = nsteps
 
 * if the coordinates have been saved as irregular we must now
 *  check to see if the coords may be regular after all
 
+	   dfirst_delta = GET_LINE_COORD (linemem(taxis)%ptr, 2) - GET_LINE_COORD (linemem(taxis)%ptr, 1)
+
 *  ... 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
-           dfirst_delta = line_mem(ilo+1) - line_mem(ilo)
-           depsilon = depsilon_46 * 2.*(ABS(line_mem(ilo))
-     .		    / dfirst_delta )
+
+	   tt  = GET_LINE_COORD (linemem(taxis)%ptr, 1)
+	   tedge = GET_LINE_COORD (lineedg(taxis)%ptr, 1)
+
+* Use this double loop to report errors relative to the member datasets
+	   istep = 1
 	   DO i = 1, nagfiles
 	      ifile = memb_order(i)
-	      DO l = 1, memb_nsteps(ifile)  ! timestep within memer files
+	      DO l = 1, memb_nsteps(ifile)  ! timestep within member files
 	         IF (i.EQ.1 .AND. l.EQ.1) THEN 
 	            CYCLE       ! 1st point on axis		
 	         ELSE
-	            ilo = ilo + 1
-	            tt  = line_mem(ilo)
-	            IF (tt .LE. line_mem(ilo-1))	 GOTO 5300
-	            IF (tt .LT. line_mem(ilo+nsteps)) GOTO 5400 ! lo bnd chk
-	         ENDIF
+	            istep = istep + 1
+	            tn = GET_LINE_COORD (linemem(taxis)%ptr, istep)
+	            tedge = GET_LINE_COORD (lineedg(taxis)%ptr, istep)
+	            IF (tn .LE. tt) GOTO 5300
+	            IF (tn .LE. tedge) GOTO 5400
+	            tt = tn
+		 ENDIF
 	      ENDDO
 	   ENDDO
+
 	   ifile = memb_order(nagfiles)  ! for error message
-	   IF (tt .GT. line_mem(ilo+nsteps+1))	 GOTO 5400 ! hi bnd chk
 
 *   check regularity of cell positions 
-	   ilo = line_subsc1(taxis)
+
 	   DO istep = 1, nsteps-1
-	      ilo = ilo + 1
-	      delta = line_mem(ilo) - line_mem(ilo-1)
+	      delta = GET_LINE_COORD (linemem(taxis)%ptr, istep+1) - 
+     .		      GET_LINE_COORD (linemem(taxis)%ptr, istep)
 	      IF (.NOT.TM_DFPEQ_TOL(dfirst_delta, delta, depsilon) )
      .								GOTO 200
 	   ENDDO
 
 *   check regularity of cell bounds
-	   ilo = line_subsc1(taxis) + nsteps   ! lower cell bound of 1st pt
-	   DO istep = ilo, ilo+nsteps-1	
-	      delta = line_mem(istep+1) - line_mem(istep)
-	      IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, delta, depsilon) )
+	   DO istep = 1, nsteps-1
+	      delta = GET_LINE_COORD (lineedg(taxis)%ptr, istep+1) - 
+     .		      GET_LINE_COORD (lineedg(taxis)%ptr, istep)
+	      IF (.NOT.TM_DFPEQ_TOL(dfirst_delta, delta, depsilon) )
      .								GOTO 200
 	   ENDDO
 
 * It's regular after all!  - change from irregular designation
  100	   CONTINUE
-	   ilo = line_subsc1(taxis)
-	   ihi = ilo + nsteps - 1
 	   line_regular(taxis) = .TRUE.
-	   line_start  (taxis) = line_mem(ilo)
+	   line_start  (taxis) = GET_LINE_COORD (linemem(taxis)%ptr, 1) 
 	   IF (nsteps .GT. 1) THEN   
-	      line_delta(taxis) = (line_mem(ihi)-line_mem(ilo))/(nsteps-1)
+	      line_delta(taxis) = dfirst_delta
 	   ELSE
 	      line_delta(taxis) = 1.0   ! arbitrary
 	   ENDIF
-	   line_subsc1 (taxis) = unspecified_int4
-	   next_line_mem_pos =  next_line_mem_pos - (2*nsteps + 1) ! restore
+	   CALL FREE_LINE_DYNMEM (taxis)
+
 	ENDIF
-****** END: check over and finalize the time axis
+* END: check over and finalize the time axis
 
 * does this new time axis match an existing one?
  200	pre_exist = TM_FIND_LIKE_DYN_LINE( taxis )
 	swap_axes = pre_exist .NE. unspecified_int4
-	IF (swap_axes) ds_time_axis(dset_num) = pre_exist
+	IF (swap_axes) THEN
+	   ds_time_axis(dset_num) = pre_exist
+	   IF (.NOT.line_regular(taxis) ) CALL FREE_LINE_DYNMEM (taxis)
+	ENDIF
 
 * correct all time-dependent variables in this dataset
 *  ... the upper L limit was set based upon the first file, alone
@@ -751,35 +578,60 @@ c	ENDIF
 	   ENDIF
  500	   CONTINUE
 	ENDDO
-	IF (swap_axes) taxis = pre_exist
+	IF (swap_axes) THEN
+	   IF (.NOT.line_regular(taxis)) CALL TM_DEALLO_DYN_LINE(taxis)
+	   bigline = pre_exist
+	ENDIF
 
 * Is the axis we have created a monthly axis?  IF so store it as such.
+* when and if we implement this go back to SVN for the code, and 
+* modify it for dynamic-coordinate-memory.
+
+* Should this axis be treated as a modulo axis?
+	
+	taxis = ds_time_axis(dset_num)
+	axwwlen = 0.
+        axwwlen = TM_WW_AXLEN(taxis)
+
+	secsperyear = DBLE(cals_yeardays(agg_cal_id)) * (24.D0 * 60.D0 * 60.D0)
+	bc_to_t0 = SECS_FROM_BC( line_t0(taxis), agg_cal_id, status)
+	CALL TM_WW_AX_1_N(taxis, start, tstep)
+	secs2start = bc_to_t0 + start*line_tunit(taxis)
+	
+* Set the conversion factor for true-month, months to days
+	 grid_line(t_dim, dgrid_buff) = taxis
+	 CALL TM_MONTH_TIME_FACTOR (dgrid_buff, true_month, timefac)
+	IF (true_month) secs2start = secs2start/ timefac
+
+	line_modulo(taxis) = .FALSE.
+	line_modulo_len( taxis ) = 0.
+
+	IF ( (secs2start .LE. secsperyear)
+     .	 .AND. (axwwlen*line_tunit(taxis) .LE. secsperyear) ) THEN
+	   line_modulo(taxis) = .TRUE.
+	   line_modulo_len( taxis ) = timefac* secsperyear/line_tunit(taxis)
+
+	ENDIF
+
+
+
+* Free the temporary line memory used for member datasets
+
+ 5000	CONTINUE	
+	DO i = 1, nagfiles
+	   IF (memb_tline(i) .NE. unspecified_int4) THEN
+	      CALL TM_DEALLO_DYN_LINE(memb_tline(i))
+	      CALL FREE_LINE_DYNMEM (memb_tline(i))
+	   ENDIF
+	ENDDO
 
-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
+ 	RETURN
  5010	CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
  5050	CALL ERRMSG( ferr_grid_definition, status,
      .		'first file of aggregation has no time axis '
      .		//memb_filename(1), *5000 )
  5100	CALL ERRMSG(ferr_insuff_memory,status,
      .	        'unable to define T aggregation axis', *5000)
- 5200	CALL ERRMSG(ferr_internal, status, 'define_ef_aggregate_grid!',
-     .		 *5000)
  5300	lname = LEFINT(l, blen)
 	CALL ERRMSG( ferr_grid_definition, status,
      .		'time axis is not monotonic at L='
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 455ee18..fdb56da 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -1,7 +1,8 @@
 	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 )
+     .			      keepax_flag, out_type, quiet, as_global,
+     .			      status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -160,10 +161,14 @@
         CHARACTER*1     crecdim
 
 * internal variable declarations:
+
+	INTEGER	   max_len
+	PARAMETER (max_len = 2048)
+
         LOGICAL         TM_LEGAL_NAME, MATCH_NAME, TM_HAS_STRING,
      .			itsa_uvar, need_doc, new, formatted, flushed,
      .			itsa_string, output_units, output_title,
-     .                  output_history, get_ds, its_nc
+     .                  output_history, get_ds, its_nc, as_global
 	INTEGER		TM_LENSTR1, ISUBSCR_CX, GET_MAX_C_STRING_LEN,
      .			MGRID_SIZE, STR_SAME, 
      .			cx, mr, dset, grid, cdfid, ivar, nready,
@@ -172,7 +177,7 @@
      .			final_status, type, maxstrlen, 
      .			write_lo(nferdims), write_hi(nferdims), 
      .			make_lo(nferdims), make_hi(nferdims),
-     .                  dset_last, dset_num, attid, len
+     .                  dset_last, dset_num, attid, len, ndims_size, wlen
 
 * *kob* 3/99- up SANITARY_VAR_CODE and local variable varcode to 64 chars
 *             and VAR_UNITS to 64
@@ -180,7 +185,7 @@
 
 	CHARACTER	SANITARY_VAR_CODE*128, VAR_TITLE*140,
      .                  VAR_TITLE_MOD*140, VAR_UNITS*64, CX_DIM_STR*48,
-     .                  TM_FMT*12,
+     .                  TM_FMT*12, GET_STRING_ELEMENT*(max_len),
      .                  varcode*128, varname*128, buff*2048, revnum*12, 
      .                  c1*1, aname*128, short*128
 
@@ -217,7 +222,7 @@
 
 	REAL*4		rbuff4
 	REAL		vals(100), bad
-        REAL*8          dvals(100), scalefac, addoff
+        REAL*8          dvals(100), avals(0:99), scalefac, addoff
 	INTEGER*4	ibuff4
 	EQUIVALENCE (rbuff4, ibuff4), (rbuff4, ibuff1)
 
@@ -280,6 +285,7 @@
            IF ( status .NE. merr_ok ) GOTO 5800
 	ENDIF
 
+
 * DODS URL saved as a global attribute (11/96)
 	IF ( DODS_cache ) THEN
 ! note that routine CDF_PREP_CACHE is assumore med to have checked the validity
@@ -303,6 +309,7 @@
      .        .OR. ds_type(dset).EQ.'FCT' .OR. ds_type(dset).EQ.'UNI')
      .       CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
         ENDIF
+
         dset_last = dset
         scalefac = 1.
         addoff = 0.
@@ -453,10 +460,20 @@
 	   ENDIF
 
 * get slab limits to use for writing the values of this variable
+
+           ndims_size = 0
+	   wlen = 0
+
            DO 50 idim = 1, nferdims
 * ... limits within which to write variable data
               write_lo(idim) = cx_lo_ss(cx,idim)
               write_hi(idim) = cx_hi_ss(cx,idim)
+
+	      IF (write_hi(idim) - write_lo(idim) .GT. 1) THEN
+	         ndims_size = ndims_size + 1
+	         wlen = write_hi(idim) - write_lo(idim) + 1
+	      ENDIF
+
 * get slab limits to use for creating this NetCDF variable
 * (elaborate checking if user manually specifies creation limits)
 * ... limits within which to create NetCDF variable
@@ -518,6 +535,9 @@
 	      ENDIF
 
  50        CONTINUE
+ 
+* If writing variable as a global variable, only write 1-D variables.
+           IF (as_global .AND. ndims_size .GT. 1) GOTO 5320
 
 * determine the netCDF "record dimension" to use
            IF ( write_lo(t_dim) .EQ. unspecified_int4 ) THEN
@@ -572,6 +592,7 @@
              ENDIF
            ENDIF
 
+           IF (.NOT. as_global) THEN
            CALL CD_MAKE_VAR( cdfid, dset_num, varcode, type, maxstrlen,
      .               grid, make_lo, make_hi, recdim, enhead, new, 
      .               edges_flag, do_bounds, mode_upcase_output, 
@@ -637,9 +658,10 @@
 
            ENDIF  ! setting scalefac and addoff
 
+           ENDIF  ! as_global
 
 * if its a newly-created variable write attributes
-           IF ( new  .AND. all_outflag .GT. 0) THEN
+           IF (( new  .AND. all_outflag .GT. 0) .AND. .NOT. as_global) THEN
 
 * Write missing value and fill flag here; if writing the scale and
 * offset attributes, then un-scale the missing and fill flags, using
@@ -1092,10 +1114,10 @@
                  IF ( status .NE. merr_ok ) GOTO 5800
 	      ENDIF
 
-           ENDIF
+           ENDIF  ! writing attributes of file or user variables
 
 * Write attributes for psuedo-variables
-           IF (cat .EQ. cat_pseudo_var) THEN  
+           IF (cat .EQ. cat_pseudo_var .AND. .NOT.as_global) THEN  
 
               IF (.NOT.got_missing) THEN
  	         CALL CD_WRITE_ATTVAL_DP(cdfid, varcode,
@@ -1133,7 +1155,8 @@
               ENDIF
            ENDIF  ! pseudo-variables
 
- 100    CONTINUE
+ 100    CONTINUE  ! loop over nvars
+
 	nready = nvars
 
 *****
@@ -1144,7 +1167,7 @@
 *
 * write the deferred coordinates
 *
-	CALL CD_WRITE_DEFER_COORD( cdfid, status )
+	IF (.NOT.as_global) CALL CD_WRITE_DEFER_COORD( cdfid, status )
 	IF ( status .NE. merr_OK ) GOTO 5800
 *
 * write the variables
@@ -1181,20 +1204,63 @@
 	      IF (varcode(1:1) .EQ. "_") varcode = varcode(2:TM_LENSTR1(varcode))
 	   ENDIF
 
-* get slab limits to use for writing the values of this variable
-           DO 450 idim = 1, nferdims
-              write_lo(idim) = cx_lo_ss(cx,idim)
-              write_hi(idim) = cx_hi_ss(cx,idim)
- 450        CONTINUE
-
 * check for interrupts - dont check again until entire variable is written
            IF (interrupted) CALL ERRMSG(ferr_interrupt,status,' ',*5800)
 
+	   IF (as_global) THEN
+	      CALL CD_GET_VAR_TYPE (dset, varid, varname, vartype, status)
+
+	      IF (outtype .NE. 0) vartype = outtype
+	      IF (itsa_uvar .AND. vartype.EQ.0) THEN  ! for user vars type not known in attrib structure
+                  vartype = 6      ! netcdf nf_double
+                  IF (itsa_string) vartype = 2
+               ENDIF
+
+	      IF (vartype .EQ. NF_CHAR) THEN 
+
+	         IF (wlen .GT. 1) GOTO 5325
+		 buff = GET_STRING_ELEMENT(
+     .				mr_lo_s1(mr), mr_hi_s1(mr),
+     .				mr_lo_s2(mr), mr_hi_s2(mr),
+     .				mr_lo_s3(mr), mr_hi_s3(mr),
+     .				mr_lo_s4(mr), mr_hi_s4(mr),
+     .				mr_lo_s5(mr), mr_hi_s5(mr),
+     .				mr_lo_s6(mr), mr_hi_s6(mr),
+     .				memry(mr)%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),
+     .				max_len, len)
+
+	         CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, varcode,
+     .			buff(:len), .FALSE., status )
+                 IF ( status .NE. merr_ok ) GOTO 5800
+
+	      ELSE
+
+	         IF (wlen .GT. 100) GOTO 5320
+	         avals(:wlen-1) = memry(mr)%ptr
+		 CALL CD_WRITE_ATTVAL_DP(
+     .                    cdfid, pcdf_global, varcode, avals(0), wlen, 
+     .                    vartype, status )
+	      ENDIF
+
+	   ELSE  ! not as-global,write regular variable
+
+* get slab limits to use for writing the values of this variable
+
+	      DO 450 idim = 1, nferdims
+                 write_lo(idim) = cx_lo_ss(cx,idim)
+                 write_hi(idim) = cx_hi_ss(cx,idim)
+ 450          CONTINUE
+
 * write the data for this variable
-           CALL CD_WRITE_VAR (cdfid, dset_num, varcode, grid, 
+              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 )
+	   ENDIF
+
            IF ( status .NE. merr_ok ) GOTO 5800
  500	CONTINUE
 
@@ -1241,6 +1307,14 @@
      .			cmnd_buff(qual_start(errloc):qual_end(errloc))
      .			//pCR//'Variable: '//varcode, *5800 )
 
+ 5320    CALL ERRMSG ( ferr_invalid_command, status,
+     .                'Global attribute must be a 1D variable length < 100'
+     .			//pCR//'Variable: '//varcode, *5800 )
+
+ 5325    CALL ERRMSG ( ferr_invalid_command, status,
+     .                'Multi-valued Global string attributes not implemented'
+     .			//pCR//'Variable: '//varcode, *5800 )
+
  5400    CALL ERRMSG ( ferr_TMAP_error, status, ' ', *5990 )
 
  5800   CALL ERRMSG ( ferr_TMAP_error, final_status, ' ', *5810 )
diff --git a/fer/gnl/define_ef_aggregate_grid.F b/fer/gnl/define_ef_aggregate_grid.F
index 6ec3cce..181ec6d 100644
--- a/fer/gnl/define_ef_aggregate_grid.F
+++ b/fer/gnl/define_ef_aggregate_grid.F
@@ -1,6 +1,7 @@
 	SUBROUTINE DEFINE_EF_AGGREGATE_GRID (agg_dset,
      .		tcoordname, nvars, vname, fvar, iline,
-     .		tf_lag_t, ref_grid, agg_dim, member_sets, nsets)
+     .		tf_lag_t, ref_grid, agg_dim, member_sets, 
+     .		nsets, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -69,7 +70,7 @@
 
 * calling argument declarations:
 	INTEGER agg_dset, nvars, fvar, iline, tf_lag_t, ref_grid,
-     .		agg_dim, member_sets(*), nsets
+     .		agg_dim, member_sets(*), nsets, status
 	CHARACTER*(*) vname, tcoordname
 
 * local variable declarations:
@@ -77,13 +78,15 @@
      .		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,
+     .		ndim, vtype, i2, i,
      .		npts, nT, nF, lagF, ipt, iline2, memb_grid, it2d,
      .		gap_size, max_gap_size, l,
      .		axcalt, axlagf, gg, ipt1, ipte, fax,
      .		nv_dummy, igrid_dummy, vtype_dummy, num_indices,
-     .		ef_time2d_dset, ef_time2d_grid, iaxis, fvartype
-	REAL*8  TDEST_WORLD, TM_WORLD_AX, fdelta
+     .		ef_time2d_dset, ef_time2d_grid, iaxis, fvartype,
+     .		time2dline
+	REAL*8  TDEST_WORLD, TM_WORLD_AX, GET_LINE_COORD, 
+     .		fdelta, f1, f2, tcoord, tedge
 
 * Getting info back from the attribute-handling structure
         INTEGER maxlen
@@ -98,6 +101,7 @@
 	has_gaps = .FALSE.
 	ef_ordered_time2d = .FALSE.
 	ef_time2d_dset = ds_var_setnum(fvar)
+	time2dline = unspecified_int4
 
 * Get the file-variable type
         slen = TM_LENSTR1(vname)
@@ -310,6 +314,7 @@
 * (cleaner code might be possible by removing the code below to a separate
 * subroutine that is called just once before processing the individual vars
 * of the aggregations)
+
 	IF (agg_dim.EQ.f_dim .AND. tline.NE.unspecified_int4) THEN
 
 	   CALL CD_GET_VAR_ID (agg_dset, tcoordname, t2did, status)
@@ -425,19 +430,27 @@
 	   nT = line_dim(grid_line(t_dim,agg_grid))
 	   nF = line_dim(grid_line(f_dim,agg_grid))
 
+* DYN linemem: allocate coordinate memory linemem for 2d_times and lineedg is the upper
+* 
+
 	   npts = nT * nF
-	   ipt1 = next_line_mem_pos
-	   ipt  = ipt1
-	   IF ((ipt+2*npts+1).GT.maxlinestore) GOTO 5100
+
+	   
+* grab a temporary dynamic axis slot for it
+	   CALL TM_ALLO_TMP_LINE(time2dline, status)
+	   IF (status .NE. ferr_ok) GOTO 5200
+	   CALL GET_LINE_DYNMEM (npts, time2dline, status) 
+	   IF (status .NE. ferr_ok) GOTO 5100
 
 * ... loop over the member data sets, copying their time steps
+           ipt = 1
 	   DO ii = 1, nsets
 	      IF (member_sets(ii) .EQ. pdset_dummy) THEN
 * ... insert a series of missing time values in the 2d time array
 	         has_gaps = .TRUE.
 	         DO i2 = 1, nT
-	            line_mem(ipt)      = unspecified_val8
-	            line_mem(ipt+npts) = unspecified_val8
+		    CALL PUT_LINE_COORD ( linemem(time2dline)%ptr, ipt, unspecified_val8)
+		    CALL PUT_LINE_COORD ( lineedg(time2dline)%ptr, ipt, unspecified_val8)
 	            ipt = ipt + 1
 	         ENDDO
 	      ELSE
@@ -452,47 +465,47 @@
 	         CALL TDEST_WORLD_INIT (memb_grid, ref_grid, t_dim, status)
 	         IF (status .NE. ferr_ok) GOTO 5000 
 	         DO i2 = 1, nT
-	            line_mem(ipt) = TDEST_WORLD(i2, memb_grid, t_dim, box_middle)
-	            line_mem(ipt+npts) =
-     .				 TDEST_WORLD(i2, memb_grid, t_dim, box_lo_lim)
+		    tcoord = TDEST_WORLD(i2, memb_grid, t_dim, box_middle)
+		    tedge  = TDEST_WORLD(i2, memb_grid, t_dim, box_lo_lim)
+		    CALL PUT_LINE_COORD ( linemem(time2dline)%ptr, ipt, tcoord)
+		    CALL PUT_LINE_COORD ( lineedg(time2dline)%ptr, ipt, tedge)
 	            ipt = ipt + 1
 	         ENDDO
 	      ENDIF
 	   ENDDO
-	   line_mem(ipt1+2*npts) = TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
+	   tedge  = TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
+	   CALL PUT_LINE_COORD ( lineedg(time2dline)%ptr, npts+1, tedge)
+
 
 * ... if there were gaps in the forecast time array, fill 'em
 *     always compute lagF - the number of time steps between forecasts
 	   CALL FILL_FMRC_TIME_GAPS(has_gaps,
-     .				    line_mem(ipt1),
-     .				    line_mem(ipt1+npts),
+     .				    linemem(time2dline)%ptr,
+     .				    lineedg(time2dline)%ptr,
      .				    nT,nF, lagF, status)
 	   IF (status .NE. ferr_ok) GOTO 5000
 
 * save the 2D time step array in c memory cache
 * to be recovered as needed by FIND_MEM_VAR
-	   CALL CACHE_FULL_ARRAY(line_mem(ipt1), npts,
+* ?? should this be done differently for dynamic line coords?
+	   CALL CACHE_FULL_ARRAY(linemem(time2dline)%ptr, npts,
      .						ds_var_c_cache_ptr(it2d))
 
-!***** TEST ****
-!	   CALL RECOVER_CACHED_ARRAY(line_mem(ipt1+72), npts,
-!     .						ds_var_c_cache_ptr(it2d))
-
-
 * make the FMRC regrid target axes: T-calendar and F-lag 
 * (t2did still holds the id of the tccordname 2d time array)
 	   has_edges = .TRUE.
 	   CALL CD_MAKE_FMRC_AXES (agg_dset, has_edges, t2did, tcoordname,
      .			ds_var_type(nv), npts, nT, nF,
-     .			axcalt, axlagf, status)
+     .			time2dline, axcalt, axlagf, status)
 	   IF (status .NE. merr_ok) GOTO 5000
 
-*****
+*
 * define the F calendar axis
-	   ipt1 = next_line_mem_pos
-	   IF ((ipt1+2*nF+1).GT.maxlinestore) GOTO 5100
 
-! per Andrew W., this axis has been shifted 1/2 cell to the left
+	   CALL GET_LINE_DYNMEM (nF, iline, status) 
+	   IF (status .NE. ferr_ok) GOTO 5100
+
+! per Andrew W., this axis has been shifted 1/2. cell to the left
 ! so that the F coordinate lies on the low limit (initialization time) of
 ! the 1st time coordinate from each forecast
 ! Only the coordinates need be got from the FMRC members. The bounds are
@@ -500,98 +513,38 @@
 
 * Get the F-step values -- lower bounds of the L=1 cells
 *   ... copying them from the axcalt axis
+
 	   l = 1
+	   ipt1 = 1
 	   DO ipt = ipt1, ipt1+nsets-1
-	      line_mem(ipt) = TM_WORLD_AX(l, axcalt, box_lo_lim )
+	      CALL PUT_LINE_COORD ( linemem(iline)%ptr, ipt, TM_WORLD_AX(l, axcalt, box_lo_lim ) )
 	      l = l + lagF
 	   ENDDO
 
-* Fill in the F-cell bounds just after the F-step values
+* Fill in the F-cell bounds
 * ... we will base the axis extreme edges on the average cell width --
 *     only an approximate anwser for unequally spaced monthly time units
-	   Fdelta = ( line_mem(ipt1+nsets-1) - line_mem(ipt1)) / (nsets-1) 
+	   Fdelta = ( GET_LINE_COORD (linemem(iline)%ptr, ipt1+nsets-1) - 
+     .                GET_LINE_COORD (linemem(iline)%ptr, ipt1) ) / DBLE(nsets-1) 
 *   ... the lower limit of the first point
-	   line_mem(ipt1+nsets) = line_mem(ipt1) - Fdelta/2
+	   
+	   CALL PUT_LINE_COORD ( lineedg(iline)%ptr, ipt1, GET_LINE_COORD (linemem(iline)%ptr, ipt1) - Fdelta/2. )
+
 *   ... the midpoints between the F-steps
 	   DO ipt = ipt1+1, ipt1+nsets-1
-	      line_mem(ipt+nsets) = (line_mem(ipt) + line_mem(ipt-1))/2
+	   
+	      CALL PUT_LINE_COORD ( lineedg(iline)%ptr, ipt, 
+     .                ( GET_LINE_COORD (linemem(iline)%ptr, ipt) + 
+     .                  GET_LINE_COORD (linemem(iline)%ptr, ipt-1) )/2. )
 	   ENDDO
 *   ... the upper limit of the last point
-	   line_mem(ipt1+2*nsets) = line_mem(ipt1+nsets-1) + Fdelta/2
-
-! THIS GIANT BLOCK OF COMMENTED CODE used to populate the F axis coords
-! It would get the timestep values of the L=1
-! output of each model run, and the corresponding cell bounds
-! It has been replaced with the much simpler block of code above
-
-!* ... similar drill to above but need to do again, because cell bounds
-!*     are needed in axis definition
-!* ... loop over the member data sets, inserting the 1st time step of each
-!*     Both the time point and one of the cell bounds needs to be inserted
-!	   max_gap_size = 0
-!	   DO ii = 1, nsets
-!	      IF (member_sets(ii) .NE. pdset_dummy) THEN
-!	         CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii, 
-!     .                vtype, iset, memb_grid, iline2, nv, status)
-!	         IF (status .NE. ferr_ok) GOTO 5200
-!	         CALL TDEST_WORLD_INIT (memb_grid, ref_grid, t_dim, status)
-!	         IF (status .NE. ferr_ok) GOTO 5000 
-!	         line_mem(ipt)    = TDEST_WORLD(1, memb_grid, t_dim,
-!     .								box_middle )
-!	         line_mem(ipt+nF) = TDEST_WORLD(1, memb_grid, t_dim,
-!     .								box_lo_lim )
-!	         gap_size = 0
-!	      ELSE
-!	         gap_size = gap_size + 1
-!	         IF (gap_size .GT. max_gap_size) max_gap_size = gap_size
-!	         CALL RECOVER_CACHED_2D_ARRAY_POINT(line_mem(ipt), 
-!     .			nT, nF, 1, ii, ds_var_c_cache_ptr(it2d))
-!	         IF (gap_size .EQ. 1) THEN
-!*      ... the previous forecast is still active in the loop
-!	            line_mem(ipt+nF) = TDEST_WORLD(1, memb_grid, t_dim,
-!     .								 box_hi_lim )
-!	         ELSE
-!*      ... leave a gap in the time cell bounds -- fill in right after this
-!	            line_mem(ipt+nF) = unspecified_val8
-!	         ENDIF
-!	      ENDIF
-!	      ipt = ipt + 1
-!	   ENDDO
-!	   line_mem(ipt+nF) = TDEST_WORLD(1, memb_grid, t_dim, box_hi_lim )
-!
-!* ... if there were gaps wider than 1 missing forecast, we need to fill in
-!*     some missing time cell bounds
-!	   IF (max_gap_size .GT. 1) THEN
-!	      ii = 1
-!	      ipt  = ipt1 + nF
-!	      DO WHILE (ii .LT. nsets)
-!	         ii  = ii  + 1
-!	         ipt = ipt + 1
-!	         IF (line_mem(ipt) .EQ. unspecified_val8) THEN
-!*       ... fill in a gap by linear interpolation
-!*           note that this is exactly right for equally spaced coordinates
-!*           but only approximate for monthly.  After improved support for 
-!*           monthly
-!	            gap_size = 0
-!	            i2 = ii+1
-!	            DO WHILE (i2 .LE. nsets+1)
-!	               gap_size = gap_size + 1
-!	               IF (line_mem(ipt+gap_size) .NE. unspecified_val8) EXIT
-!	            ENDDO
-!*       ... fill the gap
-!	            DO i = ipt, ipt+gap_size-1
-!	               line_mem(ipt) = line_mem(ipt-1)
-!     .				+ (i-ipt+1)
-!     .				* (line_mem(ipt+gap_size)-line_mem(ipt-1))
-!     .				/ (gap_size+1)
-!	            ENDDO
-!	         ENDIF
-!	      ENDDO
-!	   ENDIF
+	   CALL PUT_LINE_COORD ( lineedg(iline)%ptr, ipt1+nsets, 
+     .                           GET_LINE_COORD (linemem(iline)%ptr, ipt1+nsets-1) + Fdelta/2. )
 
 * ... make the native F-calendar axis from the pointstime steps  in line_mem
 	   CALL CD_MAKE_FMRC_FCAL_AXIS (agg_dset, iline, 
      .					nF, axcalt, status)
+
 	   IF (status .NE. merr_ok) GOTO 5000
 
 * ... put attribute _CoordinateAxistype = 'RunTime' onto the F-calendar axis
@@ -638,9 +591,14 @@
      .             slen, attoutflag, line_name(axlagf), 0., status )
 	ENDIF
 
+* Done with the 2D array which has been stored
+	
+	IF (time2dline .NE. unspecified_int4) THEN
+	   IF (line_allocated(time2dline) .GT. 0) CALL FREE_LINE_DYNMEM(time2dline)
+	ENDIF
 
  5000	RETURN
- 5100	CALL ERRMSG(ferr_insuff_memory,status,
+ 5100	CALL ERRMSG(ferr_aggregate_error,status,
      .	        'unable to define forecast aggregation', *5000)
  5200	CALL ERRMSG(ferr_internal, status, 'define_ef_aggregate_grid!',
      .		 *5000)
diff --git a/fer/gnl/define_special_grids.F b/fer/gnl/define_special_grids.F
index bea7e8a..186217b 100644
--- a/fer/gnl/define_special_grids.F
+++ b/fer/gnl/define_special_grids.F
@@ -83,7 +83,6 @@
 	line_unit_code( iline ) = 0	! unknown units
 	line_t0       ( iline ) = ' '
 	line_shift_origin( iline ) = .FALSE.
-	line_subsc1   ( iline ) = unspecified_int4	! since regular
 	line_direction( iline ) = 'NA'
 	iline_abstract = iline
 
@@ -121,7 +120,6 @@
 	line_unit_code( iline ) = 0	! unknown units
 	line_t0       ( iline ) = ' '
 	line_shift_origin( iline ) = .FALSE.
-	line_subsc1   ( iline ) = unspecified_int4	! since regular
 	line_direction( iline ) = 'NA'
 
 * "EZ" grid
diff --git a/fer/gnl/finalize_ferret.F b/fer/gnl/finalize_ferret.F
index 393dd9f..c87cfd5 100644
--- a/fer/gnl/finalize_ferret.F
+++ b/fer/gnl/finalize_ferret.F
@@ -156,7 +156,8 @@ C       Code pulled from DEALLO_ALL_AXES in order to do complete clean up silent
               line_keep_flag(k) = .FALSE.
               IF ( k .LE. max_lines ) THEN
                  IF ( .NOT. line_regular(k) ) 
-     .              CALL PACK_LINE_STORAGE(k)
+     .              CALL FREE_LINE_DYNMEM(k)
+                 line_regular(k) = .TRUE.
                  line_name(k) = char_init16
               ELSE
                  CALL TM_DEALLO_DYN_LINE(k)
diff --git a/fer/gnl/get_dataset_name.F b/fer/gnl/get_dataset_name.F
deleted file mode 100644
index e006320..0000000
--- a/fer/gnl/get_dataset_name.F
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-        SUBROUTINE GET_DATASET_NAME_FROM_BROWSER(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. 
-*
-*
-* Get the name of a dataset for a SET DATA /BROWSE command
-*
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-
-
-        INTEGER status
-
-	include 'tmap_dims.parm'
-        include 'errmsg.parm'
-        include 'ferret.parm'
-        include 'slash.parm'
-        include 'xprog_state.cmn'
-
-	LOGICAL do_jnl
-        INTEGER RUN_THREDDS_BROWSER, TM_LENSTR,
-     .          len_name, buff_len, loc
-        CHARACTER*512 dataset_name
-        CHARACTER*2048 err_warn_msg
-
-	do_jnl = mode_journal .AND. jrnl_lun.NE.unspecified_int4 
-
-* Run the browser to get the dataset name
-        dataset_name = ' '
-        err_warn_msg = ' '
-        len_name = RUN_THREDDS_BROWSER(dataset_name, err_warn_msg)
-
-* Check if there was an error running the browser
-        IF ( len_name .LT. 0 ) THEN
-            IF (do_jnl) CALL SPLIT_LIST(pttmode_ops, jrnl_lun, 
-     .                      '!-> **ERROR**', 0)
-            CALL SPLIT_LIST(pttmode_ops, ttout_lun, 
-     .                      '!-> **ERROR**', 0)
-            CALL SPLIT_LIST(pttmode_ops, err_lun, err_warn_msg, 0)
-            status = ferr_erreq
-            RETURN
-        ENDIF
-
-* Check if the user canceled out
-        IF ( len_name .EQ. 0 ) THEN
-            IF (do_jnl) CALL SPLIT_LIST(pttmode_ops, jrnl_lun, 
-     .                      '!-> **CANCEL**', 0)
-            CALL SPLIT_LIST(pttmode_ops, ttout_lun, 
-     .                      '!-> **CANCEL**', 0)
-            status = ferr_erreq
-            RETURN
-        ENDIF
-
-* Append the dataset name obtained
-        buff_len = TM_LENSTR(cmnd_buff)
-        cmnd_buff(buff_len+1:) = ' "' // dataset_name(1:len_name) // '"'
-        num_items = num_items + 1
-        item_start(num_items) = buff_len + 3
-        item_end(num_items) = item_start(num_items) + len_name - 1
-
-* Blank out the /BROWSE option to make a nicer message printed to stdout and the journal
-        loc = qual_given(slash_set_data_browse)
-        IF ( loc .GT. 0 ) THEN
-            cmnd_buff(qual_start(loc)-1:qual_end(loc)) = ' '
-        ENDIF
-
-* Include the quotes in the filename printed to stdout and the journal
-        IF (do_jnl) CALL SPLIT_LIST(pttmode_ops, jrnl_lun, 
-     .                  '!-> ' // cmnd_buff, 0)
-        CALL SPLIT_LIST(pttmode_ops, ttout_lun, 
-     .                  '!-> ' // cmnd_buff, 0)
-
-        status = ferr_ok
-        RETURN
-
-        END
diff --git a/fer/gnl/init_ef_aggregate_dset.F b/fer/gnl/init_ef_aggregate_dset.F
index 41a1e5e..ad7a008 100644
--- a/fer/gnl/init_ef_aggregate_dset.F
+++ b/fer/gnl/init_ef_aggregate_dset.F
@@ -315,7 +315,8 @@
 	   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)
+     .					  agg_dim, member_sets, nsets_wgaps, 
+     .					  status)
 	   IF (status .NE. ferr_ok) GOTO 5000
 
 * transfer to the aggregated variable whatever special attributes it inherits
diff --git a/fer/gnl/initialize_ferret.F b/fer/gnl/initialize_ferret.F
index bbfa832..65c9a9c 100644
--- a/fer/gnl/initialize_ferret.F
+++ b/fer/gnl/initialize_ferret.F
@@ -124,6 +124,9 @@
       mode_state( pmode_xwindows, 1 ) = .FALSE.
 #endif
         CONTINUE
+	
+*********************** Climatological axes ************************************
+	CALL TM_SET_CLIM_AXES
 
 * set up special grids
 	CALL DEFINE_SPECIAL_GRIDS   ! label 1000 moved here 9/91 *sh*
@@ -182,6 +185,8 @@ c	CALL GFDL_TERMS
 	RADIAN=57.29578							! 1027
 	cm2deg = radian / radius
 
+
+
 *************** MISCELLANEOUS **************************************************
 * TMAP librabry routine errors to same output unit as other errors
 	lunit_errors = err_lun
diff --git a/fer/gnl/list_cmnd_data.F b/fer/gnl/list_cmnd_data.F
index bc5df21..78d0c0f 100644
--- a/fer/gnl/list_cmnd_data.F
+++ b/fer/gnl/list_cmnd_data.F
@@ -839,7 +839,7 @@
      .			grid,
      .			row_dec,
      .			line_buff(w0+first:w0+width) )
-	      w0 = w0 + width
+	      w0 = w0 + width 
  420	   CONTINUE
 	   CALL SPLIT_LIST(pttmode_explct, list_lun,
      .				' '//line_buff(:w0), w0+1 )
diff --git a/fer/gnl/sort_tseries_dsets.F b/fer/gnl/sort_tseries_dsets.F
index e8e0eff..af75768 100644
--- a/fer/gnl/sort_tseries_dsets.F
+++ b/fer/gnl/sort_tseries_dsets.F
@@ -1,6 +1,5 @@
 	SUBROUTINE SORT_TSERIES_DSETS (nmembers, nsteps, skip_edges,
-     .				       memb_nsteps, memb_order,
-     .				       tsteps, edges)
+     .				       memb_nsteps, memb_order, memb_sort)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -46,8 +45,7 @@
 *   skip_edges	- flag to turn off cell edge processing (input)
 *   memb_nsteps	- number of time steps from each member file (input)
 *   memb_order	- ordering index of member files (input empty/output filled)
-*   tsteps      - time step array as currently ordered (in/out)
-*   edges       - edges array as currently ordered (in/out)
+*   memb_sort   - starting time steps as currently ordered, to be sorted (in/out)
 
         include 'tmap_errors.parm'
 #include "tmap_dset.parm"
@@ -67,80 +65,32 @@
 * calling argument declarations:
 	LOGICAL skip_edges
 	INTEGER nmembers, nsteps, memb_nsteps(nmembers), memb_order(nmembers)
-	REAL	tsteps(nsteps), edges(nsteps+nmembers)
+	REAL    memb_sort(nmembers)
 
 * local variable declarations:
 	LOGICAL sorted
-	INTEGER lstart(nmembers), i, lin, lout, ifile
-	REAL    tstart(nmembers), buff(nsteps+nmembers), rorder(nmembers)
+	INTEGER i
+	REAL    rorder(nmembers)
 
 * initialize
 	sorted = .FALSE.
-* ... starting index of each member file
-	lstart(1) = 1
-	DO i = 2, nmembers
-	   lstart(i) = lstart(i-1) + memb_nsteps(i-1) 
-	ENDDO
-* ... starting time step of each member file
-	DO i = 1, nmembers
-	   tstart(i) = tsteps(lstart(i))
-	ENDDO
+
 * ... pre-sorted indices in a REAL array
 	DO i = 1, nmembers
 	   rorder(i) = i
 	ENDDO
 
 * sort the datasets by start date
-	CALL HEAP2(tstart, rorder, unspecified_val8, nmembers)
-* ... copy the sorted list back into the input array
-	DO i = 1, nmembers
-	   memb_order(i) = INT(rorder(i))
-	   IF (memb_order(i) .NE. i) sorted = .TRUE.
-	ENDDO
-
-* did any re-ordering occur?
-	IF (.NOT.sorted) RETURN
+	CALL HEAP2(memb_sort, rorder, unspecified_val8, nmembers)
 
-* sort the aggregated time axis coordinates
-* ... copy into the buffer area in the correct order
-	lout = 1
-	DO i = 1, nmembers
-	   ifile = memb_order(i)
-	   lin = lstart(ifile)
-	   DO WHILE (lin .LT. lstart(ifile)+memb_nsteps(ifile) )
-	      buff(lout) = tsteps(lin)
-	      lout = lout + 1
-	      lin  = lin  + 1
-	   ENDDO
-	ENDDO
-* ... copy the sorted time axis back
-	DO lin = 1, nsteps
-	   tsteps(lin) = buff(lin)
-	ENDDO
-
-
-* sort the aggregated time axis cell edges
-	IF (skip_edges) RETURN
+* Return the sort order and the total number of steps
 
-* ... starting index of edges based on N+1 points per member
-	lstart(1) = 1
-	DO i = 2, nmembers
-	   lstart(i) = lstart(i-1) + memb_nsteps(i-1) + 1
-	ENDDO
-* ... copy into the buffer area in the correct order
-	lout = 1
+	nsteps = 0.
 	DO i = 1, nmembers
-	   ifile = memb_order(i)
-	   lin = lstart(ifile)
-	   DO WHILE (lin .LT. lstart(ifile)+memb_nsteps(ifile)+1 )
-	      buff(lout) = edges(lin)
-	      lout = lout + 1
-	      lin  = lin  + 1
-	   ENDDO
-	ENDDO
-* ... copy the sorted axis edges back
-	DO lin = 1, nsteps+nmembers
-	   edges(lin) = buff(lin)
+	   memb_order(i) = INT(rorder(i))
+	   IF (memb_order(i) .NE. i) sorted = .TRUE.
+	   nsteps = nsteps + memb_nsteps(i)
 	ENDDO
 
+	RETURN
 	END
diff --git a/fer/ino/find_dset_number.F b/fer/ino/find_dset_number.F
index 714e895..f3454f2 100644
--- a/fer/ino/find_dset_number.F
+++ b/fer/ino/find_dset_number.F
@@ -67,7 +67,8 @@
 * 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
+* V702  *sh*  11/16 support new syntax D=aggregation.member
+* V722 *acm*  Ticket 2563: Handle the dname coming in quoted, as from repl_exprns
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -85,10 +86,11 @@
      .		        cdf_name, des_name, full_name_used, nc_name
 	INTEGER		STR_CASE_BLIND_COMPARE, TM_LENSTR1,
      .			vax_code, dset, full_len, short_len, status,
-     .			agg, memb, idot, nmemb
+     .			agg, memb, idot, nmemb, iq
 	CHARACTER	TM_INQ_PATH*2048, buff*2048
 	CHARACTER*13	TM_STRING, buff13, vbuff
         REAL*8          val
+	character*1 whatc
 
 	IF ( TM_DIGIT_TEST( dname ) ) THEN
 
@@ -207,6 +209,12 @@ c *kob* 4/97
  100	   CONTINUE
 
 * Is the name a full path name?
+* Ticket 2563: Did the dname come in quoted, as from repl_exprns? 
+* If so remove those the quotes before searching
+
+	   buff = dname
+	   IF (dname(1:1) .EQ. '"' .AND. dname(full_len:full_len) .EQ. '"') 
+     .		buff = dname(2:full_len-1)
 
 	   DO 200 dset = 1, maxdsets
 
@@ -215,19 +223,19 @@ c *kob* 4/97
 * special name match checks to account for implied .cdf or .des   5/93
 	      IF ( TM_HAS_STRING(ds_type(dset),'CDF')) THEN
 	         vax_code = STR_CASE_BLIND_COMPARE( ds_des_name(dset),
-     .						    dname )
+     .						    buff )
 	         IF (  vax_code .EQ. vms_str_success
      .	        .AND. (cdf_name .OR. full_name_used) ) GOTO 400
 
 	      ELSEIF ( TM_HAS_STRING(ds_type(dset),'GT')) THEN	
 	         vax_code = STR_CASE_BLIND_COMPARE( ds_des_name(dset),
-     .						    dname )
+     .						    buff )
 	         IF (  vax_code .EQ. vms_str_success
      .	        .AND. (des_name .OR. full_name_used) ) GOTO 400
 
 	      ELSE     ! EZ data set - any filename extension allowed
 	         vax_code = STR_CASE_BLIND_COMPARE( ds_des_name(dset),
-     .						    dname(1:full_len) )
+     .						    buff(1:full_len) )
 	         IF (  vax_code .EQ. vms_str_success ) GOTO 400
 
 	      ENDIF
@@ -238,7 +246,7 @@ c *kob* 4/97
 
 * Try TM_INQ_PATH and compare with full path names
 
-           buff = TM_INQ_PATH (dname, 'FER_DATA', '    ', .FALSE.,
+           buff = TM_INQ_PATH (buff, 'FER_DATA', '    ', .FALSE.,
      .                              status)
            IF (status .NE. ferr_ok) GOTO 500
 
diff --git a/fer/ino/init_ez_dset.F b/fer/ino/init_ez_dset.F
index 683b376..3b2f981 100644
--- a/fer/ino/init_ez_dset.F
+++ b/fer/ino/init_ez_dset.F
@@ -321,6 +321,7 @@
 *     basic x axis, not the ez abstract axis
 	      CALL EZ_COUNT_DSET ( dset, ezform, nread, status )
               IF ( status .NE. ferr_ok ) RETURN
+	      nread = nread - skip
 
 	      IF (columns .GT. 1) THEN
 	         CALL CD_GET_DS_INFO (dset, ndims, nvars, ngatts,
diff --git a/fer/ino/read_tm.F b/fer/ino/read_tm.F
index ccfaf8c..2454220 100644
--- a/fer/ino/read_tm.F
+++ b/fer/ino/read_tm.F
@@ -178,8 +178,6 @@
                     stride(idim) =1 
                  ENDIF
 
-!                get size of the native axis
-                 CALL VAR_SS_LIMS(idim, cx,lo_ss_ds,hi_ss_ds)
 
                  lo_ss(idim) = (cx_lo_ss( cx, idim )-1)*stride(idim) + 
      .                         line_offset(line)
@@ -189,6 +187,13 @@
 
 !                for a reversed axis
                  IF( line_reversed(line)) THEN
+
+! get size of the native axis 
+! w/ fix to issue 1843, var_ss_lims returns strided index values
+		 
+                    CALL VAR_SS_LIMS(idim, cx,lo_ss_ds,hi_ss_ds)
+                    hi_ss_ds = hi_ss_ds* stride(idim)
+
 !                   must compute hi_ss first and then lo_ss
                     hi_ss(idim) = hi_ss_ds - 
      .                         (line_dim(line)-cx_hi_ss( cx, idim ))*stride(idim) -
diff --git a/fer/ino/var_ss_lims.F b/fer/ino/var_ss_lims.F
index 55c9c55..ad0db5f 100644
--- a/fer/ino/var_ss_lims.F
+++ b/fer/ino/var_ss_lims.F
@@ -64,8 +64,8 @@
 	INTEGER idim, cx, lo_ss, hi_ss
 
 * internal variable declarations
-	LOGICAL ACTS_LIKE_FVAR
-	INTEGER dset, cat, var, grid, line, status
+	LOGICAL ACTS_LIKE_FVAR, has_strides
+	INTEGER dset, cat, var, grid, line, pline, offset, stride, status
 	INTEGER TM_GET_GRIDNUM		! 10/93
 
 * initialize
@@ -98,7 +98,38 @@
 	ENDIF
 
 * return subscript limits
- 110	lo_ss = ds_grid_start(idim, var)
-	hi_ss = ds_grid_end  (idim, var)
+* Compute the right limits for strided axis, see issue 1843
+
+ 110	CONTINUE
+	
+	stride = 1
+	offset = 0
+	has_strides = .FALSE.
+        IF(line_parent(line) .NE. 0) THEN
+	   pline = line_parent(line)
+           has_strides  =  line_delta(line) .NE. unspecified_val8
+     .                    .AND.  line_delta(line) .NE. 1 
+        ENDIF
+
+        IF (has_strides) THEN
+	   offset = line_offset(line)
+
+	   IF (line_regular(line)) THEN 
+	      stride = NINT(line_delta(line)/line_delta(pline))
+	      lo_ss = offset + (ds_grid_start(idim, var)-1)
+	      lo_ss = 1
+	      hi_ss = line_dim(line)
+	   ELSE
+	      stride = line_delta(line)
+	      lo_ss = offset + (ds_grid_start(idim, var)-1)/ stride
+	      lo_ss = 1
+	      hi_ss = offset + line_dim(line) - 1
+	   ENDIF
+
+        ELSE 
+	   lo_ss = ds_grid_start(idim, var)
+	   hi_ss = ds_grid_end  (idim, var)
+        ENDIF
+
  1000	RETURN
 	END
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index 669bc51..d1a6a4c 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -26,10 +26,12 @@ find_mem_var.F\
 find_mem_var_incl_c_cache.F\
 find_mr_slot.F\
 find_var_name.F\
+free_line_dynmem.F\
 free_mr_dynmem.F\
 free_ws_dynmem.F\
 fvar_number.F\
 get_dyn_work_space.F\
+get_line_dynmem.F\
 get_mr_dynmem.F\
 get_ws_dynmem.F\
 get_work_mr.F\
@@ -61,6 +63,10 @@ r_cgrid_size_delta.F\
 re_assign_variable.F\
 release_dyn_work_space.F\
 show_aborted_mem_state.F\
+store_edge_ptr.F\
+store_line_ptr.F\
+store_nul_edge_ptr.F\
+store_nul_line_ptr.F\
 store_nul_mr_ptr.F\
 store_nul_ws_ptr.F\
 store_mr_ptr.F\
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/free_line_dynmem.F
similarity index 71%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/free_line_dynmem.F
index 3a0ed70..732abba 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/free_line_dynmem.F
@@ -1,8 +1,10 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+	SUBROUTINE FREE_LINE_DYNMEM ( iaxis )
 
+*
+*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
 *  hereafter referred to as NOAA/PMEL/TMAP.
 *
 *  Access and use of this software shall impose the following
@@ -33,22 +35,32 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* Free the memory associated with this coordinate line
+*
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-* 
-* V720 3/16 *acm* 
+* calling argument declarations:
+	INTEGER	iaxis
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+	IF (line_allocated (iaxis) .GT. 0) THEN
+	   CALL FREE_DYN_MEM(linemem(iaxis)%ptr)
+	   CALL FREE_DYN_MEM(lineedg(iaxis)%ptr)
+	ENDIF
+	
+	line_allocated (iaxis) = 0
 
-* calling argument declarations
-	INTEGER		grid, idim
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+* set the pointer to a zero length object (just for bookkeeping)
+c	CALL NULLIFY_LINEMEM(iaxis, 0)
+c	CALL NULLIFY_LINEMEM(iaxis, 1)
 
 	RETURN
 	END
diff --git a/fmt/src/tm_warn_subspan.F b/fer/mem/get_line_dynmem.F
similarity index 51%
copy from fmt/src/tm_warn_subspan.F
copy to fer/mem/get_line_dynmem.F
index f57e9c4..99742d8 100644
--- a/fmt/src/tm_warn_subspan.F
+++ b/fer/mem/get_line_dynmem.F
@@ -1,10 +1,10 @@
-	SUBROUTINE TM_WARN_SUBSPAN (iaxis)
+	SUBROUTINE GET_LINE_DYNMEM( rqst_size, iaxis, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
 *  hereafter referred to as NOAA/PMEL/TMAP.
-*.
+*
 *  Access and use of this software shall impose the following
 *  obligations and understandings on the user. The user is granted the
 *  right, without any fee or cost, to use, copy, modify, alter, enhance
@@ -32,52 +32,74 @@
 *  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.
-
-        include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
-        include 'xio.cmn_text'
-        external xio_data
+*
+* allocate the requested amount of dynamic coordinate storage (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 for allocating memory for coordinate storage.
+*   get_ax_linemem.F ==> get_ax_mem.c ==> store_line_ptr.F
+
+* programmer - Ansley Manke
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+*                Following main-memory dynamic allocation methods
+
+                
+        IMPLICIT NONE
+	include	'tmap_dims.parm'
+	include 'errmsg.parm'
+	include	'ferret.parm'
+#       include "tmap_dset.parm"
         include 'xtm_grid.cmn_text'
         external xgt_grid_data
+	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
 
-* argument declarations
-	INTEGER iaxis
+* calling argument declarations:
+	INTEGER	iaxis, status
+	INTEGER rqst_size
 
+* internal variable declarations:
 
-* 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
+	INTEGER	num_slen
+	INTEGER*8 i8_rqst_size
+	CHARACTER LEFINT8*20, TM_FMT*12, num_str*20
+	REAL	GET_LINE_COORD
 
-	INTEGER tt  ! nice short name
-	EQUIVALENCE (tt,lunit_errors)
+	i8_rqst_size = rqst_size
 
-	vlen = TM_LENSTR1(line_name(iaxis))
-        axwwlen = TM_WW_AXLEN(iaxis)
+	IF (line_allocated (iaxis) .GT. 0) THEN
 
-* get the nominal delta grid cell length for comparison
+	   IF (line_use_cnt(iaxis) .LE. 0) THEN
+ 	      IF ( iaxis .LE. max_lines ) THEN
+ 	         CALL FREE_LINE_DYNMEM ( iaxis )  ! checks that irreg coords are stored
+		 line_name(iaxis) = char_init16
+ 	      ENDIF
+ 	   ENDIF
 
-	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
-	
+* allocate the dynamic memory
+        CALL GET_LINEMEM(iaxis, i8_rqst_size, status)
+        IF (status .NE. ferr_ok) GOTO 5300
+
+* and for edges
+	i8_rqst_size = rqst_size + 1
+        CALL GET_EDGMEM(iaxis, i8_rqst_size, status)
+        IF (status .NE. ferr_ok) GOTO 5300
+
+	line_allocated (iaxis) = rqst_size
 	RETURN
+
+
+***********************
+* error exits
+ 5000	RETURN
+
+ 5300	CALL ERRMSG( ferr_insuff_memory,status,' ', *5310)
+ 5310	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    The OS refuses to supply memory for coordinate storage',0 )
+
+        GOTO 5000
+
 	END
+
+
diff --git a/fer/mem/purge_mr_axis.F b/fer/mem/purge_mr_axis.F
index 7f41141..7ce2c24 100644
--- a/fer/mem/purge_mr_axis.F
+++ b/fer/mem/purge_mr_axis.F
@@ -115,12 +115,11 @@
  300	CONTINUE
 
 * delete the old axis
-	IF ( .NOT.line_regular(old_axis) ) THEN
-           CALL PACK_LINE_STORAGE(old_axis)
-c	   WRITE ( I6,'(I6)' ) line_dim(old_axis)
-c	   CALL WARN( I6//' words of axis coordinate storage lost' )
-c	   line_subsc1( old_axis ) = unspecified_int4
+	IF ( .NOT.line_regular(old_axis) ) THEN 
+	   CALL FREE_LINE_DYNMEM (old_axis)
+	   line_regular(old_axis) = .TRUE.
 	ENDIF
+
 	line_use_cnt(old_axis) = 0
 	line_name( old_axis ) = char_init16
 
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_edge_ptr.F
similarity index 72%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_edge_ptr.F
index 3a0ed70..2cf90aa 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_edge_ptr.F
@@ -1,8 +1,8 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+        SUBROUTINE STORE_EDGE_PTR(iaxis, i8_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),
+*  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
@@ -33,22 +33,29 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* this routine is called from C
+* store pointer to malloc-allocated coordinate-storage F90 pointer in the 
+* linemem table or lineedg table
+*
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
+*                Following main-memory dynamic allocation methods
+
+        IMPLICIT NONE
+
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-* 
-* V720 3/16 *acm* 
+* calling argumemnts
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+        INTEGER iaxis
+        INTEGER*8 i8_size
+        
+        REAL(8), TARGET :: array(i8_size)
 
-* calling argument declarations
-	INTEGER		grid, idim
+* store the pointer
+	lineedg(iaxis)%ptr => array
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_line_ptr.F
similarity index 72%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_line_ptr.F
index 3a0ed70..d200df8 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_line_ptr.F
@@ -1,8 +1,8 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+        SUBROUTINE STORE_LINE_PTR(iaxis, i8_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),
+*  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
@@ -33,22 +33,29 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* this routine is called from C
+* store pointer to malloc-allocated coordinate-storage F90 pointer in the 
+* linemem table or lineedg table
+*
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
+*                Following main-memory dynamic allocation methods
+
+        IMPLICIT NONE
+
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-* 
-* V720 3/16 *acm* 
+* calling argumemnts
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+        INTEGER iaxis
+        INTEGER*8 i8_size
+        
+        REAL(8), TARGET :: array(i8_size)
 
-* calling argument declarations
-	INTEGER		grid, idim
+* store the pointer
+	linemem(iaxis)%ptr => array
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_nul_edge_ptr.F
similarity index 76%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_nul_edge_ptr.F
index 3a0ed70..56dc8bc 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_nul_edge_ptr.F
@@ -1,8 +1,8 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+        SUBROUTINE STORE_NUL_EDGE_PTR(iaxis, 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),
+*  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
@@ -33,22 +33,26 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* this routine is called from C
+* store pointer to a zero-length array into an F90 pointer in the line-memory table
+*
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+
+        IMPLICIT NONE
+
+* calling argumemnts
+
+        INTEGER iaxis
+        REAL(8), TARGET :: array(0)
 
-* 
-* V720 3/16 *acm* 
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+* store the pointer
 
-* calling argument declarations
-	INTEGER		grid, idim
+	lineedg(iaxis)%ptr => array
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_nul_line_ptr.F
similarity index 76%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_nul_line_ptr.F
index 3a0ed70..2af2fd5 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_nul_line_ptr.F
@@ -1,8 +1,8 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+        SUBROUTINE STORE_NUL_LINE_PTR(iaxis, 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),
+*  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
@@ -33,22 +33,26 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* this routine is called from C
+* store pointer to a zero-length array into an F90 pointer in the line-memory table
+*
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+
+        IMPLICIT NONE
+
+* calling argumemnts
+
+        INTEGER iaxis
+        REAL(8), TARGET :: array(0)
 
-* 
-* V720 3/16 *acm* 
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+* store the pointer
 
-* calling argument declarations
-	INTEGER		grid, idim
+	linemem(iaxis)%ptr => array
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/plt/disp_prep.F b/fer/plt/disp_prep.F
index 62e961a..a61a28b 100644
--- a/fer/plt/disp_prep.F
+++ b/fer/plt/disp_prep.F
@@ -68,10 +68,10 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
 *       *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.
+* V6.86 *acm* 1/14 In above fix, let there be spaces before the file spec.
 * V694   5/15    - *acm*  Ticket 2285: need to initialize iautoc to = 1 so overlay with /LEV=20V works.
 * V695  *acm* 9/15 ticket 2311: variance-based levels on constant variables
 * V695  *acm* 9/15 (not fully implemented) INT option for levels
-* V6.86 *acm* 1/14 In above fix, let there be spaces before the file spec.
 * v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, and restore the color key
 *                  style after a SHADE/SET; SHADE.
 * v698 *acm*  2/16 Initialize the use_hist flag to false
@@ -454,6 +454,14 @@
 	      iautoc = 0
 	      nlev = nlev2 ! reuse # of levels from last plot
 	   ENDIF
+
+* ... For ticket 2564. Calls to load the palette and colors, PPL SHASET, use
+*     the stored setting shd_levels in the call to setup_color_table. In some
+*     instances that previous setting causes colors to be computed for non-existent
+*     levels and rgb colors outside the range [0:1]. Set shd_levels to correspond to 
+*     the nlev for this plot.
+
+	   CALL SET_NSHD_LEVELS (nlev)
 	ELSE
 * ... set up for automatic levels
 	   CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 894fdd2..7bb00bc 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -192,6 +192,7 @@
 * V7.2 *acm* 4/2017 In fix for 2212, make sure ind_min,ind_max are defined before using them 
 *                   to check log limits on log axis.  Make sure the limits are actually applied.
 * V7.2 *acm* 5/2017 restore correct longitude moduloing for PLOT/VS overlay plots
+* V7.22 *acm* 10/2017 Fix ticket 2565, duplicate and sometimes shifted labels on PLOT/over time plots
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -415,8 +416,16 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   ELSE
 	      pdeplim = pvlim
 	   ENDIF 
+	ENDIF	   
+
+* do not re-draw the main label, logo, other labels from the underlay plot
+	IF (overlay) THEN
+	   nlabs_on = 0  
+	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )	
 	ENDIF
 
+	IF ( no_labels ) CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+
 * * * * * * *    - - - INDEPENDENT AXIS DATA - - - * * * * * * * * *
 	IF ( versus ) THEN
 	   time_axis =	.FALSE.
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index c0dc19a..30c9743 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -140,6 +140,7 @@
 *                   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
+* v722 *acm* 9/17  Fixes for 2562, polymark and other polygons over log axis.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -201,14 +202,14 @@
      .			phlim, pvlim, pxdenig, pydenig,
      .                  cal_id, tax, x_axtyp, y_axtyp, n,
      .			ss_x_save, ss_y_save, mvh_temp, ier, nc, skipsym,
-     .			nsiz, ngood
+     .			nsiz, ngood, count
 
 	REAL		x_len, y_len, lo, hi, lox, hix, loy, hiy,
      .			xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
      .			dt_min, epsilon, small, scale,
      .			xptsmin, xptsmax, xptsmean, xdif, xmeanlog,
      .			yptsmin, yptsmax, yptsmean, ydif, ymeanlog,
-     .                  first, last
+     .                  first, last, val
 
 	REAL*8		vmin, vmax, delta, ind_min, ind_max, dep_min,
      .			dep_max
@@ -566,11 +567,12 @@ c	ind_dim = plot_axis(1)
 
 	      xptsmin = ABS(mr_bad_data(mr_x))
 	      xptsmax = -1.* xptsmin
-
+	      count = 0
 	      DO 400 i = 1, npts
 		 IF (x_dat(i) .NE. mr_bad_data(mr_x)) THEN 
 		    xptsmin = MIN(xptsmin, x_dat(i))
 		    xptsmax = MAX(xptsmax, x_dat(i))
+		    count = count+1
 		 ENDIF
   400         CONTINUE
 
@@ -579,15 +581,18 @@ c	ind_dim = plot_axis(1)
 *  Convert the x midpoint to log units, and put the other x points
 *  on the page scaled by the axis ends xlo and xhi
 
+	      scale = 0.5* ABS(xhi-xlo)	! log axis units
+	      scale = 1.
+
 	      IF (xptsmean .GT. epsilon) THEN
 		 xmeanlog = LOG10(xptsmean)
-		 scale = 0.1* (xhi-xlo)	! log axis units
 
 		 DO 410 i = 1, npts
+		    val = x_dat(i)
 		    xdif = scale*(x_dat(i) - xptsmean)
 		    x_dat(i) = xmeanlog + xdif
   410		 CONTINUE
-	      ELSE
+	      ELSEIF (count.GT.0) THEN
 		 small = xptsmean
 		 GO TO 5600
 	      ENDIF
@@ -603,11 +608,12 @@ c	ind_dim = plot_axis(1)
 
 	      yptsmin = ABS(mr_bad_data(mr_y))
 	      yptsmax = -1.* yptsmin
-
+	      count = 0
 	      DO 500 i = 1, npts
 		 IF (y_dat(i) .NE. mr_bad_data(mr_y)) THEN 
 		    yptsmin = MIN(yptsmin, y_dat(i))
 		    yptsmax = MAX(yptsmax, y_dat(i))
+		    count = count+1
 		 ENDIF
   500         CONTINUE
 
@@ -616,15 +622,17 @@ c	ind_dim = plot_axis(1)
 *  Convert the y midpoint to log units, and put the other Y points
 *  on the page scaled by the axis ends ylo and yhi
 
+	      scale = 0.5* ABS(yhi-ylo)	! log axis units
+	      scale = 1.
 	      IF (yptsmean .GT. epsilon) THEN
 		 ymeanlog = LOG10(yptsmean)
-		 scale = 0.1* (yhi-ylo)	! log axis units
 
 		 DO 510 i = 1, npts
+		  val = y_dat(i)
 		    ydif = scale*(y_dat(i) - yptsmean)
 		    y_dat(i) = ymeanlog + ydif
   510		 CONTINUE
-	      ELSE
+	      ELSEIF (count.GT.0) THEN
 		 small = yptsmean
 		 GO TO 5600
 	      ENDIF
@@ -698,7 +706,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 *  If the axis is 7 (abstract) then dont do the check either.
                  tax = grid_line(f_dim,cx_grid(cx_x ))
                  IF (tax.EQ.mnormal) tax = grid_line(t_dim,cx_grid(cx_x ))
-		 IF (STR_SAME(line_name(tax),'ABSTRACT') .NE. 0) THEN 
+                 IF (STR_SAME(line_name(tax),'ABSTRACT') .NE. 0) THEN 
                     cal_name = line_cal_name(tax)
                     cal_id = TM_GET_CALENDAR_ID ( cal_name )
                     IF (cal_id .NE. saved_calendar_id) GO TO 5360
@@ -1014,7 +1022,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, 
+	         IF (vmin .NE. vmax) CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x), vmin, 
      .			     vmax, delta, x_is_log, x_axtyp, vflag, status )
 	         IF ( status .NE. ferr_ok ) THEN
                     first = vmin
@@ -1049,8 +1057,13 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 		 GOTO 5400
 	      ENDIF
 	   ELSE
+* ...  lox and hix  are log values, AXIS_ENDS expects not-log
+	      IF (x_is_log) THEN
+	         lox = 10.** lox
+		 hix = 10.** hix
+              ENDIF
               CALL AXIS_ENDS(x_ax,coord_dim,cx_grid(cx_x),
-     .	       DBLE(lox),DBLE(hix), delta, x_is_log, x_axtyp, vflag, status )
+     .	       lox, hix, delta, x_is_log, x_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = lox
 		 last = hix
@@ -1090,7 +1103,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),
+                 IF (vmin.NE.vmax) CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
      .			     vmin,vmax,delta, y_is_log, y_axtyp, vflag, status )
 	         IF ( status .NE. ferr_ok ) THEN
 		    first = vmin
@@ -1123,8 +1136,13 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 		 GOTO 5400
 	      ENDIF
 	   ELSE
+* ...  loy and hiy are log values, AXIS_ENDS expects not-log	   
+              IF (y_is_log) THEN
+	         loy = 10.** loy
+		 hiy = 10.** hiy
+              ENDIF
               CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
-     .		DBLE(loy),DBLE(hiy), delta, y_is_log, y_axtyp, vflag, status )
+     .		loy, hiy, delta, y_is_log, y_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = loy
 		 last = hiy
@@ -1288,6 +1306,6 @@ C	   slen = TM_LENSTR1( plot_title )
 
  5600	buff3 = LEFT_REAL (small, '(G15.3)', slen)
 	CALL ERRMSG( ferr_out_of_range, status,
-     . 'X coordinates on log axis negative or too small : '//
+     . 'coordinates on log axis negative or too small : '//
      .  buff3(:slen), *5000 )
 	END
diff --git a/fer/stk/setup_gather.F b/fer/stk/setup_gather.F
index 3d7a3a5..11ba4bc 100644
--- a/fer/stk/setup_gather.F
+++ b/fer/stk/setup_gather.F
@@ -58,6 +58,8 @@
 * should be discouraged.
 
 * V702  3/17 *sh* Code extracted from IS_STRIP and several refinements added
+* V7.21 9/17 *acm Fix ticket 2561. Multiple transformations and multiple-axis 
+*                 transformations on the split axis.
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -272,6 +274,12 @@
 	   IF (split_on_compressed_ax
      .    .AND. .NOT.multiax_trans(split_ax)  )   CYCLE
 
+* When there are multiple transformations in the expression and 
+* multiple-axis transformations on the split axis, the gather 
+* was returning only the last chunk of the split.
+
+	   IF (split_on_compressed_ax .AND. n_dfrnt_xforms .GT. 1) 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
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index b081d5b..a56a0ad 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -143,7 +143,6 @@ ndig_coords.F\
 no_grid_range.F\
 no_line_range.F\
 open_show_file.F\
-pack_line_storage.F\
 parse_nam_dset_grd.F\
 parse_number_list.F\
 parse_string_list.F\
diff --git a/fer/utl/deallo_all_axes.F b/fer/utl/deallo_all_axes.F
index 0093f8b..4ffee3a 100644
--- a/fer/utl/deallo_all_axes.F
+++ b/fer/utl/deallo_all_axes.F
@@ -57,7 +57,6 @@
 
 * Local declarations
 
-        LOGICAL all_gone
 	INTEGER TM_GET_LINENUM, TM_GET_GRID_OF_LINE,
      .          islot, grid, status, num_protected_axes
 
@@ -68,7 +67,6 @@
         IF (num_protected_axes .EQ. unspecified_int4 .OR.
      .      num_protected_axes .LE. 0) num_protected_axes = 1
 
-        all_gone = .TRUE.
         DO 100 islot = num_protected_axes+1, line_ceiling
            IF (line_name(islot) .NE. char_init16) THEN
 
@@ -76,7 +74,8 @@
               IF (line_use_cnt(islot) .LE. 0) THEN
 	         IF ( islot .LE. max_lines ) THEN
                     IF (.NOT. line_regular(islot)) 
-     .                  CALL PACK_LINE_STORAGE(islot)
+     .                  CALL FREE_LINE_DYNMEM(islot)
+		    line_regular(islot) = .TRUE.
 		    line_name(islot) = char_init16
 	         ELSE
 	            CALL TM_DEALLO_DYN_LINE(islot)
@@ -94,18 +93,12 @@
 	            CALL ERRMSG(ferr_internal, status,
      .				'axis use count err', *5000)
 	         ENDIF
-                 all_gone = .FALSE.
 	      ENDIF
 
            ENDIF
 
   100	CONTINUE
 
-* If all axes were deleted sucessfully, then reset the pointer into coordinate
-* storage.
-
-        IF (all_gone) next_line_mem_pos = pline_mem_init
-
 	RETURN
 
 * error exits
diff --git a/fer/utl/gcf_get_axis_srcs.F b/fer/utl/gcf_get_axis_srcs.F
index 119b2d9..4c2836a 100644
--- a/fer/utl/gcf_get_axis_srcs.F
+++ b/fer/utl/gcf_get_axis_srcs.F
@@ -124,5 +124,11 @@
 
  100	CONTINUE
 
+
+* Can we get enough info out of a direction-calling variable definition to set up 
+* the axis sources for a direction-changing function?  See is_do_gc_fcn. 
+* (Probably not for just a show grid operation? Would it be possible to put 
+* something in to issue a NOTE that the grid will depend on the args?)
+
 	RETURN
 	END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/utl/gcf_set_normal_axis.F
index 3a0ed70..20305d1 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/utl/gcf_set_normal_axis.F
@@ -38,6 +38,8 @@
 
 * 
 * V720 3/16 *acm* 
+* V722:11/17 *acm* Fix ticket 2569: decrement line-use count when setting
+*                  the grid dimension to normal. 
 
 	include 'ferret.parm'
 	include 'tmap_dims.parm'
@@ -47,8 +49,11 @@
 * calling argument declarations
 	INTEGER		grid, idim
 
+*  local declarations
+	INTEGER		line
+
+	CALL TM_DEALLO_DYN_LINE(grid_line(idim, grid))
 	grid_line(idim, grid) = mnormal
-! anything else?
 
 	RETURN
 	END
diff --git a/fer/utl/pack_line_storage.F b/fer/utl/pack_line_storage.F
deleted file mode 100644
index d8d2188..0000000
--- a/fer/utl/pack_line_storage.F
+++ /dev/null
@@ -1,110 +0,0 @@
-
-	SUBROUTINE PACK_LINE_STORAGE (axis)
-
-*
-*
-*  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 line (axis) that has been deallocated, pack the coordinate memory array.
-
-* ACM 6/11/2002
-* V5.41 7/30/02 ACM Fix def of npoints. Also, move the pointer into 
-*                   line_mem array when the coordinates in line_mem have
-*                   been changed. 
-* V600 10/28/05 ACM Fix bug 1354: We were moving way more coord data than needed
-* V600 10/31/05 ACM Renamed from REMOVE_AXIS.F
-*                   
-
-* Parameters and commons
-
-	include	'tmap_dims.parm'
-#	include	"tmap_dset.parm"
-	include 'xtm_grid.cmn_text'
-        include 'ferret.parm'
-
-* Argument declaration
-
-        INTEGER axis
-
-* Local declarations
-	INTEGER  TM_GET_LINENUM, iaxis, imem, first_pt, last_pt, 
-     .           npoints, n_to_move, num_protected_axes
-
-	num_protected_axes = TM_GET_LINENUM( 'EZ' )  ! top protected axis
-
-        IF (num_protected_axes .EQ. unspecified_int4 .OR.
-     .      num_protected_axes .LE. 0) num_protected_axes = 1
-
-* First index in this line, number of points in line
-
-        first_pt = line_subsc1 ( axis )
-
-*  Recover space in line_mem array that defines point locations, box sizes.
-*  If this line is the last in the coordinate storage, move the pointer only.
-
-        IF (first_pt .NE. unspecified_int4  .AND. 
-     .      first_pt .NE. int4_init) THEN
-
-           npoints = 2*line_dim(axis) + 1
-           last_pt = first_pt + npoints
-
-           n_to_move = next_line_mem_pos - last_pt
-
-           IF (last_pt  .LT. next_line_mem_pos) THEN
-              DO 200 imem = 1, n_to_move 
-                 line_mem(first_pt+imem-1) = line_mem(last_pt+imem-1)
-  200         CONTINUE
-           ENDIF
-
-*  For all axes whose line_mem entries were moved, also move the pointer 
-*  into line_mem
-
-           DO 300 iaxis = num_protected_axes+1, line_ceiling 
-              IF ( (.NOT. line_regular(iaxis) ) .AND. 
-     .              (line_subsc1(iaxis) .NE. unspecified_int4) ) THEN
-
-                 IF (line_subsc1(iaxis) .GT. first_pt) 
-     .            line_subsc1(iaxis) = line_subsc1(iaxis) - npoints
-
-              ENDIF
-  300      CONTINUE
-  
-           line_subsc1(axis) = unspecified_int4
-
-           next_line_mem_pos = first_pt + n_to_move 
-
-        ENDIF
-
-	RETURN
-	END
diff --git a/fer/utl/ss_neighbors.F b/fer/utl/ss_neighbors.F
index ee4a260..282e218 100644
--- a/fer/utl/ss_neighbors.F
+++ b/fer/utl/ss_neighbors.F
@@ -109,9 +109,9 @@
 
 * initialize pointers for axes with irregularly spaced points
 	IF ( .NOT.regular ) THEN
-	   isub0 = line_subsc1( axis ) - 1
-	   ibot  = isub0 + 1
-	   itop  = isub0 + line_len
+	   isub0 = 0
+	   ibot  = 1
+	   itop  = line_len
 	ENDIF
 
 * ***** SOLUTIONS WHEN GIVEN POINT BEYOND AXIS ENDS
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index a2094ab..ee4f08d 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -793,9 +793,8 @@
 	      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 (.NOT. line_regular(axis))
-     .                  CALL PACK_LINE_STORAGE(axis)
-		    line_name(axis) = char_init16
+                    CALL FREE_LINE_DYNMEM ( axis )  ! checks that irreg coords are stored
+	            line_name(axis) = char_init16
 	         ELSE
 	            CALL TM_DEALLO_DYN_LINE(axis)
 	         ENDIF
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index d86644f..6e51280 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -389,13 +389,13 @@
      .		  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, 
-     .            MATCH_TEMPLATE, TM_ITS_SUBSPAN_MODULO,
+     .            MATCH_TEMPLATE, TM_ITS_SUBSPAN_MODULO, TM_CHECK_BOX_LOC,
      .            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, true_month, line_allocated, truemonth_noted,
+     .            original, true_month, line_alloc, truemonth_noted,
      .            is_double, misordered, bnds_or_edges, okmod
 	INTEGER   REGION_NUMBER, GRID_FROM_NAME, VIEWPORT_NUMBER, STR_UPCASE,
      .		  CX_DIM_LEN, ALIAS_ID,
@@ -407,7 +407,7 @@
      .		  status, idim, vax_code, islot, iunit, iline, cat, var,
      .		  orient, mods_cx, cx, mr, n, i1, i2, i3, i4, i5, i6, pos,
      .		  grid, iqual, ax_grid, ivp, qp, iseg, uvar, dset, slen, s1,
-     .		  old_line, old_grid, frst_pt, dim(nferdims), ndim, natom,
+     .		  old_line, old_grid, dim(nferdims), ndim, natom,
      .		  at_type  (maxatoms), at_id  (maxatoms),
      .		  at_start (maxatoms), at_end (maxatoms), cal_id, 
      .            dflt_cal_id, nmonths, ndays, d_before_mon(12), 
@@ -416,7 +416,7 @@
      .            attoutflag, attlen, coordvar, 
      .            dset_to_add, dir, type, attype, attid, ibuff, i0,  
      .            agg_dim, nagfiles, ivar, item, nlab, ierr, nlen,  
-     .            llen, line, dstart, units, npts, ipt1, ipte
+     .            llen, line, dstart, units, npts, ipt1, ipte, iline_b
 
 	REAL	  rbuff, bad_flag, yeardays, 
      .            val, dummy, val_buf, xloc, yloc, halign, angle, size,
@@ -424,10 +424,11 @@
 
 	REAL*4	  r4_unspec, scale, xlovp, ylovp,  xhivp, yhivp,
      .            xoei,  yoei,   xcei,  ycei
-	REAL*8	  SECS_FROM_BC, TM_WW_AXLEN,
+	REAL*8	  SECS_FROM_BC, TM_WW_AXLEN, GET_LINE_COORD,
      .		  bc_to_t0, start, new_ww, delta, end, secs2start,
      .            micro_adj, axwwlen, rmod_len, secsperyear, small, 
-     .            new_att_modulo_len, madj, firs_coord, last_coord, timefac
+     .            new_att_modulo_len, madj, firs_coord, last_coord, timefac, 
+     .            vlo, vhi, idel
 	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,
@@ -932,7 +933,7 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 
 * /LIKE
 
-	line_allocated = .FALSE.
+	line_alloc = .FALSE.
 
 	iqual = qual_given( slash_def_ax_like )
 	IF ( iqual .GT. 0 ) THEN
@@ -961,7 +962,7 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 * find a space to catalog it
 	   status = ALLO_MANAGED_AXIS( iline )
 	   IF ( status .NE. merr_ok ) GOTO 5000
-	   line_allocated = .TRUE.
+	   line_alloc = .TRUE.
 
 * copy the line definition
 	   CALL TM_COPY_LINE ( line, iline )
@@ -1215,7 +1216,7 @@ C /units=months  is 1/12 of the length of the year
  	ENDIF
 
 * find a space to catalog it (may already be done above with DEF AX/LIKE=)
-	IF (.NOT. line_allocated) THEN
+	IF (.NOT. line_alloc) THEN
 	   status = ALLO_MANAGED_AXIS( iline )
 	   IF ( status .NE. merr_ok ) GOTO 5000
 	ENDIF
@@ -1287,19 +1288,31 @@ C /units=months  is 1/12 of the length of the year
 	   idim = dim(1)
 	   n    = CX_DIM_LEN( idim, cx )
 
-* ... original start of free line memory
-	   frst_pt = next_line_mem_pos
-* ... allocate some storage for the coordinates
-	   IF (frst_pt+2*n+1 .GT. maxlinestore) GOTO 5590
+* Allocate line coordinate storage, put the pointer in array linemem(iline)
+* and n+1 edges storage in lineedg(iline)
+
+	   CALL GET_LINE_DYNMEM (n, iline, status) 
+	   IF (status .NE. ferr_ok) GOTO 5000
 	   
 * ... If they gave upper- and lower-bounds we need to store all that,
-*     at least temporarily.  IF its too big suggest edges.
-	   IF (has_bounds .AND. frst_pt+3*n .GT. maxlinestore) THEN 
-	      IF (num_uvars_in_cmnd .EQ. 2 .AND. n2.EQ.2*n) GOTO 5592
-	      IF (num_uvars_in_cmnd .EQ. 3) GOTO 5592
+*     temporarily. Store it in scratch line storage, line_0.
+*     IF the allocation fails with bounds suggest edges.
+
+	   IF (has_bounds) THEN
+
+* If bounds are in a single extra variable they are of size 2*n
+* If they are in two extra arrays, allocate another arrays of size n
+
+              IF (num_uvars_in_cmnd .EQ. 3) THEN
+	         CALL GET_LINE_DYNMEM (n, line_0, status) 
+	         IF (status .NE. ferr_ok) GOTO 5592
+              ELSEIF (n2 .EQ. 2*n) THEN
+	         CALL GET_LINE_DYNMEM (n2, line_0, status) 
+	         IF (status .NE. ferr_ok) GOTO 5592
+              ENDIF
 	   ENDIF
 
-* ... store coordinate positions (error status already checked)
+* ... store edge positions (error status already checked)
            IF (has_bounds) THEN
               CALL NON_ARRAY_SUBSC( is_mr, 2 )
            ELSE
@@ -1311,14 +1324,15 @@ C /units=months  is 1/12 of the length of the year
 	      n = n - 1  ! edges array is one longer than points
 	      IF (n .LE. 0) GOTO 5520
 	      CALL EXTRACT_DP_LINE( cx, memry(mr)%ptr,
-     .				 line_mem(frst_pt+n), idim, n+1 )
+     .				 lineedg(iline)%ptr, idim, n+1 )
 	      npoints = 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
+	      DO 527 i1 = 2, n
+	         vhi  = GET_LINE_COORD (lineedg(iline)%ptr, i1)
+	         vlo = GET_LINE_COORD (lineedg(iline)%ptr, i1-1)
+	         IF (.NOT. TM_FPEQ( vlo, vhi ) .AND. vhi .LT. vlo) GOTO 5570
  527	      CONTINUE
 
 * ... are there repeated values?
@@ -1329,9 +1343,10 @@ C /units=months  is 1/12 of the length of the year
 
 	      use_strict = .FALSE.  ! unused for DEFINE AXIS
 	      micro_adj = 1E-6 *
-     .		(line_mem(frst_pt+n+n) - line_mem(frst_pt+n))
+     .		(GET_LINE_COORD (lineedg(iline)%ptr, n+1) - 
+     .		 GET_LINE_COORD (lineedg(iline)%ptr, 1))
 
-	      CALL TM_CHECK_COORDS (frst_pt+n, frst_pt+n+n, is_double, 
+	      CALL TM_CHECK_COORDS (lineedg(iline)%ptr, n+1, is_double, 
      .                              use_strict, has_repeated, misordered, 
      .                              micro_adj, epsilon, epsilon)
 	      IF (misordered) GOTO 5560
@@ -1341,8 +1356,10 @@ C /units=months  is 1/12 of the length of the year
 * ... 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
+	      DO 528 i1 = 2, n+1
+	         vhi = GET_LINE_COORD (lineedg(iline)%ptr,i1)
+	         vlo = GET_LINE_COORD (lineedg(iline)%ptr,i1-1)
+	         CALL PUT_LINE_COORD(linemem(iline)%ptr, i1-1, (vlo+vhi)* 0.5)
  528	      CONTINUE
 
 * Fix ticket 2400: Def of start was pointing to the lower grid cell edge not the
@@ -1350,18 +1367,11 @@ C /units=months  is 1/12 of the length of the year
 * 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
-              DO 530 i1 = frst_pt+n+1,frst_pt+2*n
-#ifdef double_p
-		 IF (.NOT.TM_FPEQ( (delta),
-     .               (line_mem(i1)-line_mem(i1-1))) )
-     .						its_reg = .FALSE.
-#else
-                 IF (.NOT.TM_FPEQ( SNGL(delta),
-     .               SNGL(line_mem(i1)-line_mem(i1-1))) )
-     .						its_reg = .FALSE.
-#endif
+	      start = GET_LINE_COORD (linemem(iline)%ptr, 1)
+              delta = GET_LINE_COORD (linemem(iline)%ptr, 2) - start
+              DO 530 i1 = 2, n+1
+	         idel = GET_LINE_COORD (lineedg(iline)%ptr, i1) - GET_LINE_COORD (lineedg(iline)%ptr, i1-1)
+		 IF (.NOT.TM_FPEQ( (delta),idel) ) its_reg = .FALSE.
  530	      CONTINUE
 
 	   ELSE
@@ -1369,12 +1379,12 @@ C /units=months  is 1/12 of the length of the year
 * NOT EDGES -- POINTS
 
 	      CALL EXTRACT_DP_LINE( cx, memry(mr)%ptr,
-     .				 line_mem(frst_pt), idim, n )
+     .				 linemem(iline)%ptr, 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)
+	         start = GET_LINE_COORD (linemem(iline)%ptr, 1)
 	         delta = 1
 	         its_reg = .TRUE.
 	         GOTO 560
@@ -1382,9 +1392,10 @@ C /units=months  is 1/12 of the length of the year
 	      
 * ... monotonic?	      
 
-	      DO 532 i1 = frst_pt+1, frst_pt+npoints-1
-	         IF (.NOT. TM_FPEQ( line_mem(i1-1), line_mem(i1) ).AND. 
-     .               line_mem(i1-1) .GT. line_mem(i1)) GOTO 5570
+	      DO 532 i1 = 2, npoints  
+	         vhi  = GET_LINE_COORD (linemem(iline)%ptr, i1)
+	         vlo = GET_LINE_COORD (linemem(iline)%ptr, i1-1)
+	         IF (.NOT. TM_FPEQ( vlo, vhi ) .AND. vhi .LT. vlo) GOTO 5570
  532	      CONTINUE
 
 * ... are there repeated values?
@@ -1395,9 +1406,10 @@ C /units=months  is 1/12 of the length of the year
 
 	      use_strict = .FALSE.  ! unused for DEFINE AXIS
 	      micro_adj = 1E-6 *
-     .		(line_mem(frst_pt+n-1) - line_mem(frst_pt))
+     .		(GET_LINE_COORD (linemem(iline)%ptr, n) - 
+     .		 GET_LINE_COORD (linemem(iline)%ptr, 1))
 
-	      CALL TM_CHECK_COORDS (frst_pt, frst_pt+npoints-1, is_double, 
+	      CALL TM_CHECK_COORDS (linemem(iline)%ptr, npoints, is_double, 
      .                              use_strict, has_repeated, misordered, 
      .                              micro_adj, epsilon, epsilon)
 	      IF (misordered) GOTO 5560
@@ -1411,62 +1423,96 @@ 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, memry(mr)%ptr,
-     .	  	    line_mem(next_line_mem_pos + n), idim, n2 )
+		 IF (n2 .EQ. n+1) THEN 
+
+                    IF (num_uvars_in_cmnd .EQ. 2) THEN
+                       CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
+     .	  	       lineedg(iline)%ptr, idim, n2 )
+		    ENDIF
 
 * If given as coords, lo_bounds, hi_bounds, then
 * 1) check that lo_bounds{i+1} = hi_bounds{i}
 * 2) If ok, add the upper high bound to the list and treat 
 *    this as the case where we give the bounds as N+1 values
 
-                 IF (num_uvars_in_cmnd .EQ. 3) THEN
+                 ELSE IF (n2 .EQ. 2*n) THEN
+                    CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
+     .	  	       lineedg(line_0)%ptr, idim, n2 )
+		 ENDIF
+
+		 IF (num_uvars_in_cmnd .EQ. 3) THEN
+		    
+                    CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
+     .	  	    lineedg(iline)%ptr, idim, n2 )
+
                     cx = is_cx(3)
                     mr = is_mr(3)
                     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.
-     .                      line_mem(next_line_mem_pos + 2*n+i-1) ) 
-     .                     GOTO 5750
+     .	 	       lineedg(line_0)%ptr, idim, n3 )
+                    DO i = 1, n-1
+		       vlo = GET_LINE_COORD (lineedg(iline)%ptr, i+1)
+		       vhi = GET_LINE_COORD (lineedg(line_0)%ptr, i)
+                       IF (vlo .NE. vhi  ) GOTO 5750
                     ENDDO
-                    line_mem(next_line_mem_pos + 2*n) = 
-     .                    line_mem(next_line_mem_pos + 3*n-1)
-                    n2 = n+1
+		    vhi = GET_LINE_COORD (lineedg(line_0)%ptr, n)
+                    CALL PUT_LINE_COORD (lineedg(iline)%ptr, n+1, vhi)
+		    n2 = n + 1
+
+*  deallocate the extra n storage used for bounds.
+                    CALL FREE_LINE_DYNMEM(line_0)
+
                  ENDIF
 
 * Check that bounds enclose points, and that they are contiguous
-	         line_subsc1 ( iline ) = frst_pt
-                 line_dim    ( iline ) = npoints
-                 IF (.NOT. TM_CHECK_BNDS (iline, n2, .TRUE., buff3) ) GO TO 5750
+
+		 line_dim    ( iline ) = npoints
+		 IF (n2 .EQ. n+1) THEN
+  		     IF ( .NOT. TM_CHECK_BOX_LOC (linemem(iline)%ptr, 
+     .                     lineedg(iline)%ptr, n2) ) GOTO 5750
+                 
+		 ELSE
+                    IF (.NOT. TM_CHECK_BNDS (linemem(iline)%ptr, 
+     .                     lineedg(line_0)%ptr, n, 
+     .                     iline, .TRUE., buff3) ) GO TO 5750
+		    
+* Change from N*2 storage of bounds to N+1 edges.
+                    CALL TM_CONVERT_BOUNDS_EDGES (lineedg(line_0)%ptr, 
+     .                  lineedg(iline)%ptr, n)
+
+*  deallocate the temporary 2*n  storage used for bounds.
+                    CALL FREE_LINE_DYNMEM(line_0)
+		 ENDIF
 
               ELSE
 
 *... create bounds equidistant between grid points
 
 *    ... store initial box lower bound (start of axis)
-	         line_mem(frst_pt+npoints) = line_mem(frst_pt) -
-     .			0.5 * ( line_mem(frst_pt+1) - line_mem(frst_pt) )
+
+                vlo = GET_LINE_COORD (linemem(iline)%ptr, 1)
+                vhi = GET_LINE_COORD (linemem(iline)%ptr, 2)
+                val = vlo - (vhi-vlo)/2.
+		CALL PUT_LINE_COORD (lineedg(iline)%ptr, 1, val)
 *    ... mid-axis box boundaries ...
-	         DO 539 i1 = frst_pt+1, frst_pt+npoints-1
-	            line_mem(i1+npoints) = (line_mem(i1-1)+line_mem(i1)) * 0.5
+	         DO 539 i1 = 2, npoints
+                    vlo = GET_LINE_COORD (linemem(iline)%ptr, i1-1)
+                    vhi = GET_LINE_COORD (linemem(iline)%ptr, i1)
+                    val = vlo + (vhi-vlo)/2.
+                    CALL PUT_LINE_COORD (lineedg(iline)%ptr, i1, val)
  539	         CONTINUE
+
 *    ... upper-most box bound (end of axis)
-	         i2 = frst_pt+npoints-1	! last box point
-	         line_mem(i2+npoints+1) = line_mem(i2) +
-     .			0.5 * ( line_mem(i2) - line_mem(i2-1) )
+	         val = vhi + (vhi-vlo)/2.
+		 CALL PUT_LINE_COORD (lineedg(iline)%ptr, npoints+1, val)
+
 	         its_reg = .TRUE.	! until proven otherwise
-	         start = line_mem(frst_pt)
-                 delta = line_mem(frst_pt+1) - start
-                 DO 550 i1 = frst_pt+2,frst_pt+npoints-1
-#ifdef double_p
-                    IF (.NOT.TM_FPEQ( (delta),
-     .                  (line_mem(i1)-line_mem(i1-1))) )
-     .                       its_reg = .FALSE.
-#else
-		    IF (.NOT.TM_FPEQ( SNGL(delta),
-     .                  SNGL(line_mem(i1)-line_mem(i1-1))) )
-     .                       its_reg = .FALSE.
-#endif
+
+	         its_reg = .TRUE.	! until proven otherwise
+	         start = GET_LINE_COORD (linemem(iline)%ptr, 1)
+                 delta = GET_LINE_COORD (linemem(iline)%ptr, 2) - start
+                 DO 550 i1 = 2, npoints
+	            idel = GET_LINE_COORD (lineedg(iline)%ptr, i1) - GET_LINE_COORD (lineedg(iline)%ptr, i1-1)
+		    IF (.NOT.TM_FPEQ( (delta),idel) ) its_reg = .FALSE.
  550	         CONTINUE
               ENDIF
 
@@ -1477,11 +1523,9 @@ C /units=months  is 1/12 of the length of the year
 	      line_start    ( iline ) = start
 	      line_delta    ( iline ) = delta
 	      line_regular  ( iline ) = .TRUE.
-	      line_subsc1   ( iline ) = unspecified_int4
-	   ELSE	      
 * ... save irregular line data
-	      line_subsc1 ( iline ) = frst_pt
-	      line_start  ( iline ) = line_mem(frst_pt)
+	   ELSE
+	      line_start  ( iline ) = GET_LINE_COORD (linemem(iline)%ptr, 1)
 	      line_delta  ( iline ) = unspecified_val8
               line_dim    ( iline ) = npoints   ! need this here so TM_CHECK_BNDS works.
 	      line_regular( iline ) = .FALSE.
@@ -1561,9 +1605,10 @@ C /units=months  is 1/12 of the length of the year
 	   line_start    ( iline ) = start
 	   line_delta    ( iline ) = delta
 	   line_regular  ( iline ) = .TRUE.
-	   line_subsc1   ( iline ) = unspecified_int4
 	ENDIF
 
+	IF (line_regular(iline)) CALL FREE_LINE_DYNMEM (iline)
+
 * /T0 = date (or supply default)
 	iqual = qual_given( slash_T0 )
         new_att_t0 = ' '
@@ -1689,7 +1734,9 @@ C /units=months  is 1/12 of the length of the year
 	     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)
+	    CALL TM_ADJUST_BOUNDS(iline, line_dim(iline), 
+     .       360, axwwlen, its_modulo)
+
 	     IF (its_modulo) THEN
 	        rmod_len = 360.D0
 	        new_att_modulo = .TRUE.
@@ -1727,8 +1774,9 @@ C /units=months  is 1/12 of the length of the year
 	      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)
+	         CALL TM_ADJUST_BOUNDS( iline, line_dim(iline), 
+     .              secsperyear/line_tunit(iline), axwwlen, okmod)
+
 	         IF (okmod) THEN
 		    its_modulo = .TRUE.
 	            rmod_len = axwwlen
@@ -1745,8 +1793,10 @@ C /units=months  is 1/12 of the length of the year
 * 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 (irreg .AND. its_modulo .AND. .NOT.bnds_or_edges .AND. rmod_len.GT.0.) THEN
+	   CALL TM_ADJUST_BOUNDS( iline, line_dim(iline),  
+     .              rmod_len, axwwlen, okmod)
+
 	   IF (.NOT.okmod) its_modulo = .FALSE.
 	ENDIF
 
@@ -1782,17 +1832,17 @@ 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.
-
+*     (If this is implemented, needs to be changed from line_mem() references to dynamic
+*     coordinate methods.)
 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	   CALL TM_CHECK_MONTHLY_AXIS (linemem(iline)%ptr,, 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
@@ -1806,11 +1856,6 @@ 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
@@ -2756,7 +2801,8 @@ c ?? if nlab=0, use next avail slot?
  5510	CALL ERRMSG( ferr_invalid_command, status,
      .		'Conflicting /X,/Y,/Z/T/E or /F axis orientations given',
      .								*5000 )
- 5520	CALL ERRMSG( ferr_grid_definition, status,
+ 5520	CALL FREE_LINE_DYNMEM (iline)
+	CALL ERRMSG( ferr_grid_definition, status,
      .			'error in start,end,delta', *5000 )
  5525	CALL ERRMSG( ferr_grid_definition, status,
      .			'Axis length exceeds modulo length', *5000 )
@@ -2766,9 +2812,11 @@ c ?? if nlab=0, use next avail slot?
      .		'/T0='//buff2(:TM_LENSTR1(buff2)), *5000 )
  5550	CALL ERRMSG( ferr_grid_definition, status,
      .		'inappropriate units:'//buff1(:TM_LENSTR1(buff1)), *5000 )
- 5560	CALL ERRMSG( ferr_grid_definition, status,
+ 5560	CALL FREE_LINE_DYNMEM (iline)
+	CALL ERRMSG( ferr_grid_definition, status,
      .		'unrepairable repeated axis coords', *5000 )
- 5570	buff1 = TM_FMT(FLOAT(i1-frst_pt+1), 14, 16, slen)
+ 5570	CALL FREE_LINE_DYNMEM (iline)
+	buff1 = TM_FMT(FLOAT(i1), 14, 16, slen)
 	CALL ERRMSG( ferr_grid_definition, status,
      .		'data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index '
      .		//buff1(:slen), *5000 )
@@ -2776,10 +2824,8 @@ c ?? if nlab=0, use next avail slot?
      .		'data for DEFINE AXIS/FROM_VARIABLE is ambiguous', *5000 )
  5582	CALL ERRMSG( ferr_grid_definition, status,
      .		'illegal argument for DEFINE AXIS/NPOINTS', *5000 )
- 5590	CALL ERRMSG( ferr_prog_limit, status,
-     .		'axis coordinate storage exhausted - issue CANCEL AXIS/ALL', *5000  )
  5592	CALL ERRMSG( ferr_prog_limit, status,
-     .		'axis coordinate storage exhausted -  '//
+     .		'Unable to allocate system memory for coordinate storage -  '//
      .		'use /EDGES not /BOUNDS to save space', *5000 )
  5600   slen = TM_LENSTR1(buff3)
         CALL ERRMSG( ferr_syntax, status,
@@ -2827,7 +2873,9 @@ c ?? if nlab=0, use next avail slot?
      .     ') must be N, N=number of axis coordinates ('//
      .     buff1(:slen) //')', *5000 )
 
-5750	CALL ERRMSG( ferr_grid_definition, status,
+5750	CALL FREE_LINE_DYNMEM (iline)
+	CALL FREE_LINE_DYNMEM (line_0)
+	CALL ERRMSG( ferr_grid_definition, status,
      .   'BOUNDS specified do not correctly enclose coordinate points', 
      .   *5000 )
 5760	CALL ERRMSG( ferr_grid_definition, status,
diff --git a/fer/xeq/xeq_list.F b/fer/xeq/xeq_list.F
index 4588de2..971913c 100644
--- a/fer/xeq/xeq_list.F
+++ b/fer/xeq/xeq_list.F
@@ -181,7 +181,7 @@
      .			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), 
-     .			do_shrink
+     .			do_shrink, as_global
 
 	INTEGER		TM_LENSTR1, CX_DIM_LEN, STR_CASE_BLIND_COMPARE,
      .                  STR_UPCASE, GET_MAX_STRING_LEN,
@@ -292,13 +292,22 @@
         ENDIF
 
 * /KEEP_AXISNAMES for netCDF ?
-        i = slash_list_keepax
+
         i = qual_given( slash_list_keepax )
 	keepax_flag = 0
         IF ( i .GT. 0 ) THEN
            keepax_flag = 1
         ENDIF
 
+* /ASGLOBAL to write a netCDF Global Attribute? 
+* Write the variable as a global attribute; conditions on this 
+* variable are checked in cdf_list: 1-D, single value string or
+* up to 100 values numeric.
+
+        as_global = qual_given( slash_list_asglobal ) .GT. 0
+        IF (.NOT. do_cdf .AND. as_global) CALL WARN(
+     .          '/ASGLOBAL is valid only for NetCDF output. Ignored')
+
 * /EDGES for netCDF ?
         edges_flag = 0
         IF ( qual_given(slash_list_edges) .GT. 0) edges_flag = 1
@@ -674,7 +683,7 @@ c	   IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
      .                    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 )
+     .                    keepax_flag, out_type, quiet, as_global, status )
 
 	ELSEIF( all_at_once ) THEN
 	   CALL LIST_MULTI(  mr_perm, my_cx, heading, perm,
diff --git a/fer/xeq/xeq_set.F b/fer/xeq/xeq_set.F
index 6e202f9..91801e2 100644
--- a/fer/xeq/xeq_set.F
+++ b/fer/xeq/xeq_set.F
@@ -198,6 +198,7 @@
 *		  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.
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
  
 
 	include 'tmap_dims.parm'
@@ -259,7 +260,7 @@
      .                  cache_preemption, numpts, redir_file_lun, 
      .                  iline, iset, n
 	INTEGER*8	i8_val
-        REAL*8          TM_WW_AXLEN, axwwlen, new_att_modulo_len
+        REAL*8          TM_WW_AXLEN, GET_LINE_COORD, axwwlen, new_att_modulo_len
         REAL*8          delta, dlo, dhi, firstval, lastval
 	REAL		val_buf, cache_size_mb
 	CHARACTER	TM_FMT*12, title*1024, subtitle*64, arg*24,
@@ -436,12 +437,6 @@ c *kob* 4/97
 	   RETURN
 	ENDIF
 
-* check for /BROWSE - dataset name comes from the browser
-        IF ( qual_given(slash_set_data_browse) .GT. 0 ) THEN
-           CALL GET_DATASET_NAME_FROM_BROWSER(status)
-           IF ( status .NE. ferr_ok ) RETURN
-        ENDIF
-
 * (hack) if the argument has a ".agg" extension, then pass it to the GO
 * command, allowing "USE myAgg.agg" to initialize an aggregation
 	IF (num_items .GT. 0 ) THEN
@@ -1030,12 +1025,11 @@ c *kob* 4/97
 *             ** Get first and last axis values (assumed to be valid)
 *                and number of points **
               numpts = line_dim(axis)
-              i = line_subsc1(axis)
-              firstval = line_mem(i)
-              i = i + numpts - 1
-              lastval = line_mem(i)
+              firstval = GET_LINE_COORD (linemem(axis)%ptr, 1)
+              lastval = GET_LINE_COORD (linemem(axis)%ptr, numpts)
 *             ** Free up memory used by the array of axis values **
-              CALL PACK_LINE_STORAGE(axis)
+              CALL FREE_DYN_MEM(linemem(axis)%ptr)
+              CALL FREE_DYN_MEM(lineedg(axis)%ptr)
 *             ** Assign values for a regular axis **
               line_start(axis) = firstval
               line_delta(axis) = (lastval - firstval) / (numpts - 1.0)
diff --git a/fmt/cmn/tmap_dims.parm b/fmt/cmn/tmap_dims.parm
index f6d4a83..88674f5 100644
--- a/fmt/cmn/tmap_dims.parm
+++ b/fmt/cmn/tmap_dims.parm
@@ -32,17 +32,18 @@
 *                  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
+* V72 8/17 *acm*   For trac enhancement #767 -- dynamic coordinate storage, no maxlinestore
 
 * for TMAP formatted files:
 	INTEGER	nrec_codes,ngrid_prenamed,nvari_prenamed,maxdsets,
      .		maxstepfiles,maxvars,maxaux,max_grids,max_lines,
-     .		maxlinestore, maxgridfiles, max_axis_orients,
+     .		maxgridfiles, max_axis_orients,
      .		num_aux, num_parm, num_gridfiles, maxvarfiles,
      .		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, 
-     .		dgrid_buff
+     .		dgrid_buff, num_clim, line_0
 
 * parameters used for dimensioning arrays
 	PARAMETER (dgrid_buff = 0)	! scratch buffer for grids (as in ferret.parm)
@@ -70,10 +71,11 @@
 	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 = 750000)! max # of coords 
+	PARAMETER (line_0 = 0)		! temporary scratch line coords 
 	PARAMETER (maxgridfiles = 10)	! maximum number of grids
 	PARAMETER (max_axis_orients = 9)! maximum number of axis orients
 	PARAMETER (num_aux = 6)		! number of aux_modnum's in descriptor
 	PARAMETER (num_parm = 15)	! number of add_parm's in descriptor
 	PARAMETER (num_gridfiles = 6)	! number of grid_filenames in descript.
 	PARAMETER (nferdims = 6)	! number of dimensions in Ferret grids.
+	PARAMETER (num_clim = 8)	! number of pre-defined climatological axes.
diff --git a/fmt/cmn/xbuild_grids.cmn b/fmt/cmn/xbuild_grids.cmn
index 408481e..962df93 100644
--- a/fmt/cmn/xbuild_grids.cmn
+++ b/fmt/cmn/xbuild_grids.cmn
@@ -8,19 +8,10 @@
 	INTEGER     max_temp_grid
 	PARAMETER ( max_temp_grid = 100 )
 
-
-
-!	INTEGER firstax, lastax, firstgrid, lastgrid, orig_line_mem
-	INTEGER orig_line_mem,
-     .		num_tmp_grids,
+	INTEGER num_tmp_grids,
      .		tmp_nam_ptr(max_grids:grid_ceiling)
 
 	COMMON /XBUILD_GRIDS/
-!     .		firstax,
-!     .		lastax,
-!     .		firstgrid,
-!     .		lastgrid,
-     .		orig_line_mem,
      .		num_tmp_grids,
      .		tmp_nam_ptr
 
diff --git a/fmt/cmn/xtm_grid.cmn_text b/fmt/cmn/xtm_grid.cmn_text
index 408b4e3..c8ddd26 100644
--- a/fmt/cmn/xtm_grid.cmn_text
+++ b/fmt/cmn/xtm_grid.cmn_text
@@ -41,22 +41,41 @@
 	CHARACTER*64	grid_name
 	CHARACTER*2	line_direction, axis_orients
 	INTEGER		line_subsc1, line_dim, line_unit_code, grid_line,
-     .			next_line_mem_pos, grid_use_cnt, grid_flink,
+     .			grid_use_cnt, grid_flink,
      .			grid_blink, grid_free_ptr, max_grid_used,
      .			line_parent, line_use_cnt, line_flink, line_blink,
      .			line_class, line_free_ptr, max_line_used,
-     .                  pline_mem_init, line_offset, line_dattype
+     .                  line_offset, line_dattype, line_allocated
 	LOGICAL		grid_out_prod, line_regular, line_modulo, line_reversed,
      .			line_keep_flag, line_shift_origin, line_fixname, line_write,
      .			line_dim_only
 	REAL		line_tunit, grid_rotation
-	REAL*8		line_start, line_delta, line_mem, line_modulo_len
+	REAL*8		line_start, line_delta, line_modulo_len,
+     .			clim_line_coords, clim_line_edges
+
+* DYN line mem
+* Dynamic allocation of irregular coordinate storage
+*   - linemem to replace line_mem
+*   - lineedgdg to store edges
+*   - No longer need line_subsc1
+*   - No longer need next_line_mem_pos
+
+        TYPE line_table_slot
+           SEQUENCE     ! force data elements to be memory-contiguous
+           REAL(8), POINTER :: ptr(:)
+        END TYPE
+        TYPE(line_table_slot) :: linemem(0:line_ceiling)
+        TYPE(line_table_slot) :: lineedg(0:line_ceiling)
 
 	COMMON / XGRID /
+     .			linemem,
+     .			lineedg,
      .			line_start	( 0:line_ceiling ),
      .			line_delta	( 0:line_ceiling ),
      .			line_modulo_len	( 0:line_ceiling ),
-     .			line_mem	( maxlinestore),
+     .
+     .			clim_line_coords( 12, num_clim ),
+     .			clim_line_edges	( 13, num_clim ),
      .
      .			grid_filename	( maxgridfiles),
      .
@@ -70,10 +89,8 @@
      .			line_modulo	( 0:line_ceiling ),
      .			line_t0		( 0:line_ceiling ),
      .			line_tunit	( 0:line_ceiling ),
-     .			next_line_mem_pos,
      .			line_parent	( 0:line_ceiling ),
      .			line_use_cnt	( 0:line_ceiling ),
-!     .			line_has_edges	( 0:line_ceiling ),
      .			line_flink	( max_lines:line_ceiling ),
      .			line_blink	( max_lines:line_ceiling ),
      .			line_class	( 0:line_ceiling ),
@@ -81,11 +98,10 @@
      .			line_fixname    ( 0:line_ceiling ),
      .			line_shift_origin( 0:line_ceiling ),
      .			line_write      ( 0:line_ceiling ),
-     .			line_dim_only   ( 0:line_ceiling ),
+     .			line_dim_only   ( 0:line_ceiling ), 
      .			line_free_ptr,
      .			max_line_used,
      .			line_cal_name  ( 0:line_ceiling ),
-     .                  pline_mem_init,
      .
      .			grid_name	( 0:grid_ceiling ),
      .			grid_line	( nferdims, 0:grid_ceiling ),
@@ -101,7 +117,8 @@
      .			axis_orients	( 0:max_axis_orients ),
      .                  line_reversed   ( 0:line_ceiling),
      .                  line_offset     ( 0:line_ceiling),
-     .                  line_dattype    ( 0:line_ceiling)
+     .                  line_dattype    ( 0:line_ceiling), 
+     .			line_allocated  ( 0:line_ceiling )
 
 * note: the zero subscript is a scratch buffer
 
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 0b9c295..46be8b7 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -114,6 +114,7 @@ cd_write_defer_coord.F\
 cd_write_grid.F\
 cd_write_strdim.F\
 cd_write_var.F\
+copy_line_coords.F\
 encode_strings_data.F\
 ez_count_dset.F\
 ez_init_dset.F\
@@ -124,11 +125,13 @@ ez_permuted_index.F\
 ez_read.F\
 ez_update_var.F\
 free_time.F\
+get_line_coord.F\
 gt_get_time_axis.F\
 lib_free_lun.F\
 lib_get_lun.F\
 mc_init_dset.F\
 mc_read.F\
+put_line_coord.F\
 remote_read.F\
 str_case_blind_compare.F\
 str_dncase.F\
@@ -164,6 +167,9 @@ tm_check_coords.F\
 tm_check_fmrc_bnds_attrib.F\
 tm_check_bnds_centered.F\
 tm_check_edges_attrib.F\
+tm_check_line.F\
+tm_check_line_bounds.F\
+tm_check_line_edges.F\
 tm_check_monthly_axis.F\
 tm_choose_read.F\
 tm_clean_filename.F\
@@ -171,6 +177,7 @@ tm_close_set.F\
 tm_close_set_cond_deallo.F\
 tm_close_step.F\
 tm_cmprss.F\
+tm_convert_bounds_edges.F\
 tm_conv_to_r4.F\
 tm_conv_to_r8.F\
 tm_copy_grid.F\
@@ -255,6 +262,7 @@ tm_lenstr1.F\
 tm_line_match.F\
 tm_loc_string.F\
 tm_lonw2lone.F\
+tm_lonw2e_line.F\
 tm_load_calendar.F\
 tm_make_4d_grids.F\
 tm_make_basic_axis.F\
@@ -296,6 +304,7 @@ tm_scale_nobad.F\
 tm_secs_from_bc.F\
 tm_secs_to_date.F\
 tm_secs_to_ymdhms.F\
+tm_set_clim_axes.F\
 tm_set_current_calendar.F\
 tm_split_message.F\
 tm_step_to_date.F\
diff --git a/fmt/src/cd_1d_line_from_2d.F b/fmt/src/cd_1d_line_from_2d.F
index 02dd30d..158b7be 100644
--- a/fmt/src/cd_1d_line_from_2d.F
+++ b/fmt/src/cd_1d_line_from_2d.F
@@ -43,6 +43,7 @@
 * V695+ *acm* and *sh*
 * V698  *sh* 3/16 -- modify the native taxis (axlagt) to become a lag time
 *                 -- look for and read time_bounds 2d array if it exists
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
 
 * include files
         include 'netcdf.inc'
@@ -67,7 +68,7 @@
      .		start(nferdims),count(nferdims), zero(nferdims),
      .		npts, nT, nF, npts_cdf, vdims(8), nvdim,
      .		vlen, blen, bndid, attid, attype, attlen, attoutflag
-	REAL*8  TM_WORLD_AX, avg_lag
+	REAL*8  TM_WORLD_AX, avg_lag, uppermost
 	CHARACTER  TM_STRING*13, buff*256
 	CHARACTER bname*48, attname*48
 
@@ -78,6 +79,7 @@
 	do_warn = .FALSE.
 	vlen = TM_LENSTR1(vname)
 
+
 * start out by getting an overview of the 2D time variable
 	CALL CD_GET_VAR_INFO (dset, varid, vname, vartype, 
      .            nvdim, vdims, nvatts, coordvar, outflag, status)
@@ -96,9 +98,16 @@
 	nT = count(1)   ! number of time steps per forecast
 	nF = count(2)   ! number of forecasts in collection
 
-	IF ((next_line_mem_pos+ npts+1).GT.maxlinestore) GOTO 5300
+* grab a temporary dynamic axis slot for it. Store it in the axis axcalt 
+* as that axis will be set up with the coordinates
+
+	CALL TM_ALLO_TMP_LINE(axcalt, status)
+	IF (status .NE. merr_ok) GOTO 5000
+
+	CALL GET_LINE_DYNMEM (npts+1, axcalt, status)
+	IF (status .NE. merr_ok) GOTO 5000 
 	CALL CD_READ_SUB(cdfid, varid, nvdim, start, count, zero, zero, 
-     .			 line_mem(next_line_mem_pos), 0, 0, cdfstat)
+     .			 linemem(axcalt)%ptr, 0, 0, cdfstat)
 	IF ( cdfstat .NE. NF_NOERR ) GOTO 5000
 
 ************* start bounds reading
@@ -136,9 +145,8 @@
 	zero (3) = 0
 
 * ... read the lower bounds into line memory above the 2d time coordinates
-	IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
 	CALL CD_READ_SUB(cdfid, bndid, nvdim, start, count, zero, zero, 
-     .			 line_mem(next_line_mem_pos+npts), 0, 0, cdfstat)
+     .			 lineedg(axcalt)%ptr, 0, 0, cdfstat)
 	IF ( cdfstat .NE. NF_NOERR ) GOTO 999
 
 * ... alter limits for reading the single upper bound of the top point
@@ -154,8 +162,9 @@
 
 * ... read the upper-upper bound into line memory above the 2d lower bounds
 	CALL CD_READ_SUB(cdfid, bndid, nvdim, start, count, zero, zero, 
-     .			 line_mem(next_line_mem_pos+2*npts), 0, 0, cdfstat)
+     .			 uppermost, 0, 0, cdfstat)
 	IF ( cdfstat .NE. NF_NOERR ) GOTO 999
+	CALL PUT_LINE_COORD ( lineedg(axcalt)%ptr, 2*npts+1, uppermost )
 
 * ... success!
 	has_edges = .TRUE.
@@ -189,9 +198,5 @@
 
 * error exit
  5000	RETURN
- 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
-     .                  no_descfile, no_stepfile,
-     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .                  no_errstring, *5000)
 
 	END
diff --git a/fmt/src/cd_abort_grids.F b/fmt/src/cd_abort_grids.F
index 194f8e1..f419798 100644
--- a/fmt/src/cd_abort_grids.F
+++ b/fmt/src/cd_abort_grids.F
@@ -58,10 +58,7 @@
 	INTEGER status
 
 * remove temporary in-progress grids and all associated use counts
-	CALL TM_PURGE_TMP_GRIDS( status )	! ststus ignored!!
-
-* return line memory to unused state
-	next_line_mem_pos = orig_line_mem
+	CALL TM_PURGE_TMP_GRIDS( status )	! status ignored!!
 
         RETURN
 	END
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index 1498999..d58cff7 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -12,7 +12,7 @@
 *  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
+*  its supporting documentation for any puFrpose 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
@@ -206,7 +206,7 @@
 * 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 
-
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
 
 * argument definitions:
 *       cdfid    - netCDF id number for already opened CDF file  (to go away with new attr. hanling)
@@ -244,40 +244,37 @@
 * local parameter definitions:
       INTEGER     str_eq
       PARAMETER ( str_eq = 0 )
-      REAL epsilon_23
-      REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
-     .       dfirst_delta, ddelta
 
 * local variable declarations:
-      LOGICAL NC_GET_ATTRIB, CD_GET_ATTVAL, TM_CHECK_BOX_LOC,
+      LOGICAL NC_GET_ATTRIB, CD_GET_ATTVAL,
      .        TM_HAS_STRING, TM_FPEQ_EPS, TM_DFPEQ, CD_GET_ATTVALC, 
      .        CD_GET_ATTVAL_L, TM_CHECK_BNDS, TM_CHECK_BNDS_CENTERED, 
-     .        TM_FPEQ, TM_DFPEQ_TOL, NC_GET_ATTRIB_DP, TM_ITS_SUBSPAN_MODULO,
+     .        TM_FPEQ, TM_DFPEQ_TOL, NC_GET_ATTRIB_DP,
      .        got_it, got_torg, do_warn,
      .        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, reg,
      .        has_repeated, misordered, has_missing, is_double, 
-     .        true_month, okmod
+     .        true_month, okmod, edge_reg, set_regular
 
       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,
+     .        vartype, vback, npts, vlen, cdfstat, istat,
      .        nvdims, vdims(8), nvatts, i, units, npts_cdf, elen, 
      .        edgid, spacing_atlen, epic_t2var, since_T0,
      .        cal_id, year, month, day, hour, minute, second, slen,
-     .        blen, bndid, startpts(2), numpts(2), next_line_storage,
+     .        blen, bndid, startpts(2), numpts(2),
      .        d1s, d1e, d2s, d2e, attoutflag, maxlen,
      .        all_outflag, dir, attlen, itop, irev, attype, iatt, ibx1,
-     .        i1, i2, i3, i0
+     .        i1, i2, i3, i0, npts2
 
-      REAL    rbuff, delta, first_delta, val, epsilon, lm_len, 
+      REAL    rbuff, delta, first_delta, val, lm_len, 
      .        scale, offset, start
       REAL*4  r4delta
-      REAL*8  TM_LONW2LONE, TM_WW_AXLEN, tmp8, axwwlen, 
-     .        dscale, doffset,  micro_adj, madj
+      REAL*8  TM_LONW2LONE, TM_WW_AXLEN, GET_LINE_COORD,
+     .        tmp8, axwwlen, dscale, doffset,  micro_adj, madj
       CHARACTER*12 TM_LEFINT
       CHARACTER vname*128, ename*128, vupcase*128, words(8)*24,
      .        spacing_attr*14, bname*128, TM_FMT*32
@@ -304,22 +301,12 @@
  
       got_torg = .FALSE.
       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" 
-* or "real*4" in Fortran. This is a binary format that occupies 32 bits (4 bytes) 
-* and its significand has a precision of 24 bits (about 7 decimal digits).
-* Double precision, called "double" in the C language family, and "double precision" 
-* or "real*8" in Fortran. This is a binary format that occupies 64 bits (8 bytes) 
-* and its significand has a precision of 53 bits (about 16 decimal digits).
 
-      epsilon_23 =  2.**(-23) 
-      depsilon_46 =  2.**(-46) 
 
 * get the vital statistics of the axis 
 
@@ -416,9 +403,11 @@
 
       line_regular(iaxis) = .FALSE.
       its_irregular = .FALSE.
+      set_regular = .FALSE.
       IF ( got_it ) THEN
          line_regular(iaxis) = buff(1:1).EQ.'e' .OR. buff(1:1).EQ.'E'
          its_irregular = .NOT.line_regular(iaxis)
+	 set_regular = line_regular(iaxis)
       ELSE
          line_regular(iaxis) = .FALSE. ! default
       ENDIF
@@ -690,9 +679,19 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
         got_bnds = .FALSE.
 	got_edges = .FALSE.
 	its_irregular = .FALSE.
+	set_regular = .TRUE.
       ENDIF
 
 * get the axis coordinates - none, regular, or irregular
+
+* Allocate line coordinate storage, put the pointer in array linemem(iaxis)
+* and lineedg(iaxis) storage.
+
+      CALL GET_LINE_DYNMEM (npts_cdf, iaxis, status) 
+      IF (status .NE. merr_ok) GOTO 5900
+
+      CALL PUT_LINE_COORD ( linemem(iaxis)%ptr, 1, 0.0 )
+
       IF ( npts .EQ. 0 ) THEN
 * create a dummy one point axis
          CALL TM_NOTE('Axis "'//vname(:vlen)//
@@ -791,175 +790,83 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
 * ============= START OF IRREGULAR AXIS PROCESSING ========================
       ELSE 
-* adequate storage for the irregular coordinates and box edges ?
-* 2*npts + 1 for edges plus coordinate values.
 
-* First, just require npts amount of storage. Read the coords and 
-* test for regular spacing. If regular then we're good.  If not, then
-* check that there's enough to store the grid cell bounds.
+
+* Read the coords and test for regular spacing. If regular then we're good. 
+* If not, then compute the grid cell bounds.
 
          line_start(iaxis) = unspecified_val8
          line_delta(iaxis) = unspecified_val8
-         IF ((next_line_mem_pos+ npts+1).GT.maxlinestore) GOTO 5300
+
 
 * read the CDF coordinate values into double precision axis storage
-         ipt1 = next_line_mem_pos
-         ipte = ipt1 + npts - 1
+* Applying any scaling using TM_SCALE.  Coordinate data does not have missing-flags,
+* send the default missing flag which should not match any valid coordinate data.
+
          IF ( epic_time ) THEN
             CALL CD_RD_EP_ARR( cdfid, ivar, epic_t2var,
      .                         line_t0(iaxis), line_tunit(iaxis),
-     .                         npts_cdf, line_mem(ipt1), status )
+     .                         npts_cdf, linemem(iaxis)%ptr, status )
          ELSEIF ( yyyymmdd_time ) THEN
             CALL CD_RD_YMD_ARR( cdfid, ivar,
      .                         line_t0(iaxis), line_tunit(iaxis),
-     .                         npts_cdf, line_mem(ipt1), status )
+     .                         npts_cdf, linemem(iaxis)%ptr, status )
          ELSE
             CALL CD_RD_R8_ARR( cdfid, ivar, 1, npts_cdf, vartype,
-     .                         vname(:vlen), line_mem(ipt1), status )
+     .                         vname(:vlen), linemem(iaxis)%ptr, status )
             IF (days_neg4713 .NE. 0.) THEN
-               DO 330 i = ipt1,ipte
-                  line_mem(i) = line_mem(i) - days_neg4713
- 330           CONTINUE
+               offset = -1* days_neg4713
+               CALL TM_SCALE (1.D0, -1* days_neg4713, linemem(iaxis)%ptr, 
+     .                         npts, bad_r8, bad_r8)
             ENDIF
          ENDIF
          IF ( status .NE. merr_ok ) GOTO 1000   ! 3/99 soft error
 	 
 	 IF (do_scale) THEN
 	    IF (scale_is_dp) THEN
-	       DO 334 i=ipt1,ipte
- 334            line_mem(i) = line_mem(i)*dscale + doffset
+	       CALL TM_SCALE (dscale, doffset, linemem(iaxis)%ptr, 
+     .                         npts, bad_r8, bad_r8)
 	    ELSE
-	       DO 336 i=ipt1,ipte
- 336            line_mem(i) = line_mem(i)*scale + offset
+	       CALL TM_SCALE (scale, offset, linemem(iaxis)%ptr, 
+     .                         npts, bad_r8, bad_r8)
 	    ENDIF
 	 ENDIF
 
          IF ( west_lon ) THEN
-            DO 340 i=ipt1,ipte
- 340        line_mem(i) = TM_LONW2LONE( line_mem(i) ) 
-         ENDIF
-
-* if the coordinates are decreasing-ordered then reverse them
-
-         IF (npts .GT. 1) THEN
-            first_delta = line_mem(ipt1+1) - line_mem(ipt1)
-            reversed(iaxis) = first_delta .LT. 0.0
-         ENDIF
-         IF ( reversed(iaxis) ) THEN
-            DO 345 i=ipt1,ipt1+npts/2-1
-               tmp8 = line_mem(i)
-               line_mem(i) = line_mem(ipte+ipt1-i)
-               line_mem(ipte+ipt1-i) = tmp8
- 345        CONTINUE
- 
+            CALL TM_LONW2E_LINE (linemem(iaxis)%ptr, npts)
          ENDIF
+	 
+         is_double = vartype .EQ. ncdouble
 
-* If repeated values, apply micro-adjusting. 
-* Or report as a warning if the user requested /STRICT.
-
-         misordered = .FALSE.
-         DO 350 i=ipt1+1,ipte
-           IF (line_mem(i) .LT. line_mem(i-1) ) 
-     .	      misordered = .TRUE.
-	   IF (use_strict .AND. (line_mem(i) .LE. line_mem(i-1)) )
-     .	      misordered = .TRUE.
-
-* out of order axis coordinates.
-* If reversed above, remove that designation to 
-* just hand the user the original data
-
-	   IF (misordered) THEN
-              words(1) = TM_LEFINT(i-ipt1+1, istat)
-              CALL TM_NOTE(
-     .             'Coordinates out of order or missing on axis '//
-     .           vname(:vlen)//' at subscript '//words(1), tt)
-              CALL TM_NOTE(
-     .             'A dummy axis of subscripts will be used', tt)
-              reversed(iaxis) = .FALSE.
-              GOTO 1000
-           ENDIF
-  350   CONTINUE
-
-         misordered = .FALSE.
-
-         micro_adj = 1E-7 *
-     .		(line_mem(ipte) - line_mem(ipt1))
-
-	is_double = vartype .EQ. ncdouble
-
-* ... are there repeated values?
-
-*	 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
+* Check for misordered or repeated data
+* If repeated values, apply micro-adjusting, or report as a warning if the 
+* user requested /STRICT.
 
 * 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.
-
-        IF (its_irregular) GOTO 380  ! If the file says its irreg, treat it at such
-
-* See if double-precision coordinates are regularly-spaced
-	epsilon = 0.
-	depsilon = 0.
+* Use the precision of the data  in the file.
 
-        IF (is_double) THEN
-           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 )
-
-           DO 355 i=ipt1+2,ipte
-              ddelta = line_mem(i) - line_mem(i-1)
-              IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 380
-  355      CONTINUE
-
-* See if single-precision (or integer??) coordinates are regularly-spaced
-        ELSE
-           last_coord = line_mem(ipte)
-           firs_coord = line_mem(ipt1)
-           first_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 )
-
-           DO 360 i=ipt1+2,ipte
-              delta = line_mem(i) - line_mem(i-1)
-              IF (.NOT. TM_FPEQ_EPS(epsilon, first_delta, delta) ) GOTO 380
-  360      CONTINUE
-        ENDIF
+	CALL TM_CHECK_LINE ( linemem(iaxis)%ptr, npts, 
+     .      reversed(iaxis), vname, vlen, is_double, its_irregular, 
+     .      use_strict, line_regular(iaxis), misordered)
+	IF (misordered) GOTO 1000
 
+	IF (line_regular(iaxis)) THEN 
 * yes, it's actually regular - save it as such
-        line_regular(iaxis) = .TRUE.
-        line_start  (iaxis) = line_mem(ipt1)
-        line_delta  (iaxis) = 
-     .              (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
-        line_subsc1 (iaxis) = unspecified_int4
-        last_coord = line_start(iaxis) + DBLE(npts-1)*line_delta(iaxis)
-        firs_coord = line_start(iaxis)
-
-        GOTO 390
+           line_start  (iaxis) = GET_LINE_COORD (linemem(iaxis)%ptr, 1)
+           line_delta  (iaxis) = 
+     .              ( GET_LINE_COORD (linemem(iaxis)%ptr, npts) - 
+     .                line_start(iaxis) )/DBLE(npts-1)
+           last_coord = line_start(iaxis) + DBLE(npts-1)*line_delta(iaxis)
+           firs_coord = line_start(iaxis)
+
+           GOTO 390
+	ENDIF
 
 * Compute the default locations of boundaries between grid boxes (midpoints)
 * Note: this may be modified by a subsequent "EDGES" or "BOUNDS" definition
-
-* Here is where we need to require 2*npts amount of available coordinate storage.
-
- 380    CONTINUE
-        IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
  
-        CALL TM_IRREGAX_MID( ipt1, npts )
-      ENDIF
-
-      IF (got_bnds .AND. npts .EQ. 1) THEN
-         line_regular(iaxis) = .FALSE.
-         ipt1 = next_line_mem_pos
-         ipte = next_line_mem_pos
-         line_mem(ipt1) = line_start(iaxis)
+        CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
       ENDIF
 
 * ============= END OF IRREGULAR AXIS PROCESSING ========================
@@ -998,7 +905,7 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
            IF ( line_regular(iaxis) ) THEN
               first = line_start(iaxis)   
            ELSE
-              first = line_mem(ipt1)
+              first = GET_LINE_COORD (lineedg(iaxis)%ptr, 1)
            ENDIF
 
 * ... compute seconds from 1-jan-0001
@@ -1027,68 +934,56 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
      .        edgid, status)
 
       IF (status .EQ. pcdferr) GO TO 5100
-      IF (status .NE. merr_ok) THEN
-         CALL TM_IRREGAX_MID( next_line_mem_pos,
-     .                          line_dim   (iaxis) )
+
+* Invalid edges, issue a note and use coordinate midpoints.
+ 
+       IF (status .NE. merr_ok) THEN
+         CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
          GO TO 600
       ENDIF
 
 * read the (npts+1) box edge values into double precision storage
 
-        ipt1 = next_line_mem_pos
-        line_subsc1(iaxis) = next_line_mem_pos
-        CALL CD_RD_R8_ARR( cdfid, edgid, 1, npts+1, vartype,
-     .                     vname(:vlen), line_mem(ipt1+npts), status )
-        IF ( status .NE. merr_ok ) GOTO 1000    ! 3/99 soft error
-
-* if the coordinates were reversed then the box edges must be, too
-        IF ( reversed(iaxis) .AND.  npts .GT. 1) THEN
-	    itop = (ipt1+npts)+npts/2-1
-	    irev = ipt1 + 2*npts
-            DO 450 i=ipt1+npts,itop
-               tmp8 = line_mem(i)
-	       line_mem(i) = line_mem(irev)
-	       line_mem(irev) = tmp8
-	       irev = irev - 1
- 450        CONTINUE
-
-        ENDIF
-	 
-        IF (.NOT.TM_CHECK_BOX_LOC(iaxis)) THEN
-              CALL TM_NOTE('Error in Edges "'//ename(:elen)//
-     .         '"or edges do not enclose point on axis '//
-     .         vname(:vlen), tt)
-              CALL TM_NOTE('Substituting coordinate midpoints', tt)
-              CALL TM_IRREGAX_MID( next_line_mem_pos,
-     .                          line_dim   (iaxis) )
-              bad_bndsid = edgid
-        ELSE 
+      CALL CD_RD_R8_ARR( cdfid, edgid, 1, npts+1, vartype,
+     .                     vname(:vlen), lineedg(iaxis)%ptr, status )
+      IF ( status .NE. merr_ok ) GOTO 1000    ! 3/99 soft error
 
-* check to see that each data point is contained inside its box.
+* Check to see that each data point is contained inside its box.
 * See if they're centered after all.
 
-           IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
+      CALL TM_CHECK_LINE_EDGES ( linemem(iaxis)%ptr, 
+     .                   lineedg(iaxis)%ptr, npts, iaxis, reversed(iaxis), 
+     .                   vname, vlen, is_double, edge_reg, ok)
+
+      IF (.NOT. ok) THEN
+           CALL TM_NOTE(
+     .            'Error in Edges or edges do not enclose point on axis '//
+     .             vname(:vlen), tt)
+           CALL TM_NOTE('Substituting coordinate midpoints', tt)
+           CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts  )
+           bad_bndsid = edgid     
+       ENDIF
+
 * It's actually regular - save it as such
-              IF (.NOT. line_regular(iaxis)) THEN
-                 line_regular(iaxis) = .TRUE.
-                 line_start  (iaxis) = line_mem(ipt1)
-                 IF (npts .GT. 1) THEN
-                    line_delta  (iaxis) = 
-     .                (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
-                 ELSE
-   	         ibx1 = ipt1 + npts
-                    line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
-                 ENDIF
-                 line_subsc1 (iaxis) = unspecified_int4
-                 last_coord = line_start(iaxis) + 
+      IF (edge_reg .AND. .NOT. line_regular(iaxis)) THEN
+         line_regular(iaxis) = .TRUE.
+         line_start  (iaxis) = GET_LINE_COORD (lineedg(iaxis)%ptr, 1)
+         IF (npts .GT. 1) THEN
+	      line_delta  (iaxis) = 
+     .        (GET_LINE_COORD (lineedg(iaxis)%ptr, npts) - 
+     .         GET_LINE_COORD (lineedg(iaxis)%ptr, 1) )/DBLE(npts-1)
+         ELSE
+	      line_delta  (iaxis) = 
+     .        (GET_LINE_COORD (lineedg(iaxis)%ptr, npts+1) - 
+     .         GET_LINE_COORD (lineedg(iaxis)%ptr, 1) )
+         ENDIF
+         last_coord = line_start(iaxis) + 
      .                DBLE(npts-1)*line_delta(iaxis)
-                 firs_coord = line_start(iaxis)
-              ENDIF
-           ELSE
-              line_regular(iaxis) = .FALSE.
-           ENDIF
+         firs_coord = line_start(iaxis)
+      ELSE
+	 line_regular(iaxis) = .FALSE.
+      ENDIF
 
-        ENDIF
 
 ****************************************************************************
 *                              BOX BOUNDS                                  *
@@ -1096,102 +991,94 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
 * the attribute "bounds=name" may point to a list of box boundaries
 
-500     maxlen = 128
-        IF ( .NOT.got_bnds ) GOTO 600
+500   maxlen = 128
+      IF ( .NOT.got_bnds ) GOTO 600
 
 * Check the bounds variable, issue any warnings.
-        CALL TM_CHECK_BNDS_ATTRIB (dset, line_dim(iaxis), vname, vlen,
+      CALL TM_CHECK_BNDS_ATTRIB (dset, line_dim(iaxis), vname, vlen,
      .                             bname, bndid, status)
-        IF (status .EQ. pcdferr) GO TO 5100
-        IF (status .NE. merr_ok) THEN
-           IF (npts .EQ. 1) THEN  ! save as a regular axis, no bounds.
+      IF (status .EQ. pcdferr) GO TO 5100
+      IF (status .NE. merr_ok) THEN
+         IF (npts .EQ. 1) THEN  ! save as a regular axis, no bounds.
               line_regular(iaxis) = .TRUE.
-              line_start  (iaxis) = line_mem(ipt1)
               line_delta(iaxis) = 1
               line_subsc1 (iaxis) = unspecified_int4
               last_coord = line_start(iaxis) 
               firs_coord = line_start(iaxis)
-           ENDIF
-              ! If npts not 1 then we have already set the boundaries
-              ! at statement 380  CALL TM_IRREGAX_MID( ipt1, npts )
-           GO TO 600
-        ENDIF
+         ENDIF
+         ! If npts not 1 then we have already set the boundaries
+         ! with CALL TM_IRREGAX_MID
+         GO TO 600
+      ENDIF
 
 * read the (npts*2) box edge values into double precision storage 
 
-        line_subsc1(iaxis) = next_line_mem_pos
-        ipt1 = next_line_mem_pos
-        startpts(1) = 1
-        startpts(2) = 1
-        numpts(1) = 2
-        numpts(2) = npts
-
-        d1s = startpts(1)
-        d1e = numpts(1)
-        d2s = startpts(2)
-        d2e = numpts(2)
-
-        blen = TM_LENSTR1(bname)
-        CALL CD_RD_R8_BNDS( cdfid, bndid, startpts, numpts, vartype, 
-     .                    bname(:blen), line_mem(ipt1+npts),  
-     .                    d1s, d1e, d2s, d2e, status )
-        IF ( status .NE. merr_ok ) GOTO 1000    ! 3/99 soft error
-
-* if the coordinates were reversed then the box bounds must be, too 
-        IF ( first_delta .LT. 0.0  .AND.  npts .GT. 1) THEN
-	   itop = (ipt1+npts)+npts
-	   irev = (ipt1+npts)+2*npts-1
-           DO 550 i=ipt1+npts,itop
-               tmp8 = line_mem(i)
-	       line_mem(i) = line_mem(irev)
-	       line_mem(irev) = tmp8
-	       irev = irev - 1
- 550       CONTINUE
-        ENDIF
+      startpts(1) = 1
+      startpts(2) = 1
+      numpts(1) = 2
+      numpts(2) = npts
+
+      d1s = startpts(1)
+      d1e = numpts(1)
+      d2s = startpts(2)
+      d2e = numpts(2)
 
-* check to see that each data point is contained inside its box,
-* and if the bounds are contiguous, warning user if not. Change
-* the storage from N*2 bounds to N+1 edges.    
+* read the 2*npts box edge values into double precision storage
+* Allocate line-edges coordinate storage, put the pointer in scratch 
+* space lineedg(line_0). This will be redone into n+1 edges, so this
+* allocation is temporary.
 
-        IF (.NOT. TM_CHECK_BNDS(iaxis, 2*npts, is_double, vname) ) THEN  
+      npts2 = 2*npts
+      CALL GET_LINE_DYNMEM (npts2, line_0, status)  
+      IF (status .NE. merr_ok) GOTO 5900
+
+      blen = TM_LENSTR1(bname)
+      CALL CD_RD_R8_BNDS( cdfid, bndid, startpts, numpts, vartype, 
+     .                    bname(:blen), lineedg(line_0)%ptr,  
+     .                    d1s, d1e, d2s, d2e, status )
+      IF ( status .NE. merr_ok ) GOTO 1000    ! 3/99 soft error
 
-           CALL TM_NOTE('Error in bounds "'//bname(:blen)//
+      IF (npts .EQ. 1) CALL PUT_LINE_COORD ( linemem(iaxis)%ptr, 1, line_start(iaxis) )
+      CALL TM_CHECK_LINE_BOUNDS (linemem(iaxis)%ptr, 
+     .                  lineedg(line_0)%ptr, npts, 
+     .                  iaxis, reversed(iaxis), vname, vlen, 
+     .                  is_double, line_regular(iaxis), ok)
+
+      IF (.NOT.ok ) THEN
+         CALL TM_NOTE('Error in bounds "'//bname(:blen)//
      .         '" or bounds do not enclose point on axis '//
      .         vname(:vlen), tt)
-           CALL TM_NOTE('Substituting coordinate midpoints', tt)
-           IF (.NOT.line_regular(iaxis) ) CALL TM_IRREGAX_MID(
-     .                          next_line_mem_pos, line_dim (iaxis) )
-           bad_bndsid = bndid
-      
-        ELSE  ! Only check for centered bounds if the bounds are valid
+         CALL TM_NOTE('Substituting coordinate midpoints', tt)
 
-* For axes specified with BOUNDS, check whether coordinates are also 
-* centered in the boxes, and whether the size of the boxes are equal.
-* If there is one point, use upper and lower bound as given in the file 
-* to determine line_delta.
+         CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
 
-           IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
-* It's actually regular - save it as such
-              IF (.NOT. line_regular(iaxis)) THEN
-                 line_regular(iaxis) = .TRUE.
-                 line_start  (iaxis) = line_mem(ipt1)
-                 IF (npts .GT. 1) THEN
-                    line_delta  (iaxis) = 
-     .                (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
-                 ELSE
-   	         ibx1 = ipt1 + npts
-                    line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
-                 ENDIF
-                 line_subsc1 (iaxis) = unspecified_int4
-              ENDIF
-           ELSE
-              line_regular(iaxis) = .FALSE.
-           ENDIF
-	
-        ENDIF  ! valid bounds, also checked centered
+	 bad_bndsid = bndid
+      ENDIF	
+
+      IF (ok .AND. .NOT.line_regular(iaxis)) THEN
+	   
+* Change from N*2 storage of bounds to N+1 edges.
+
+         CALL TM_CONVERT_BOUNDS_EDGES (
+     .                  lineedg(line_0)%ptr, 
+     .                  lineedg(iaxis)%ptr, npts)
 
- 600    CONTINUE
+      ENDIF
+
+* Use bounds to set the line_delta for regular axis.
+
+      IF (ok .AND. line_regular(iaxis)) line_delta(iaxis) = 
+     .   GET_LINE_COORD(lineedg(line_0)%ptr, 2) - GET_LINE_COORD(lineedg(line_0)%ptr, 1)
+
+*  deallocate the temporary edge storage used to check bounds.
+      CALL FREE_LINE_DYNMEM(line_0)
+
+ 600  CONTINUE
+
+* All the checks for regular have been made. If regular, 
+* deallocate the line storage....
 
+      IF (line_regular(iaxis) .OR. set_regular) CALL FREE_LINE_DYNMEM(iaxis)
  
 * 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.
@@ -1204,7 +1091,7 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 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     .       CALL TM_CHECK_MONTHLY_AXIS (linemem(iaxis)%ptr, line_dim(iaxis), cal_id, 
 c     .                                   line_t0(iaxis), units, line_units(iaxis),
 c     .                                   start, delta, line_tunit(iaxis), true_month)
 c
@@ -1221,15 +1108,10 @@ 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.   
+* Save the axis name (upper case) and original axis name.   
 
         line_name(iaxis) = vupcase
         line_name_orig(iaxis) = vname
-        IF ( .NOT.line_regular(iaxis) ) THEN
-           line_subsc1(iaxis) = next_line_mem_pos
-           next_line_mem_pos =  next_line_storage + 2*npts+1 
-        ENDIF
 
 * if it is a longitude axis of 360 degrees or less let it default to MODULO
 * unless user has set it explicitly to false.
@@ -1254,9 +1136,9 @@ c	ENDIF
 
               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)
+     .               GET_LINE_COORD (lineedg(iaxis)%ptr, npts) - 
+     .               GET_LINE_COORD (lineedg(iaxis)%ptr,1) .LE. 360.D0 ) THEN
+	            CALL TM_ADJUST_BOUNDS(iaxis, npts, 360.0, axwwlen, okmod)
 	            IF (okmod) THEN
 		       line_modulo(iaxis) = .TRUE.
 		       line_modulo_len(iaxis) = 360.D0
@@ -1293,8 +1175,9 @@ c           secsperyear = cals_yeardays(cal_id)* 24*60*60
 	      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)
+	         CALL TM_ADJUST_BOUNDS(iaxis, npts, 
+     .                 secsperyear/line_tunit(iaxis), axwwlen, okmod)
+
 	         IF (okmod) THEN
 		    line_modulo(iaxis) = .TRUE.
 		    line_modulo_len(iaxis) = axwwlen
@@ -1309,9 +1192,9 @@ c           secsperyear = cals_yeardays(cal_id)* 24*60*60
 * 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.line_regular(iaxis) .AND. line_modulo(iaxis) .AND. .NOT.got_bnds .AND. .NOT.got_edges) THEN
+	   CALL TM_ADJUST_BOUNDS(iaxis, npts,  
+     .                 line_modulo_len(iaxis), axwwlen, okmod)
 	   IF (.NOT.okmod ) THEN
 	      line_modulo(iaxis) = .FALSE.
 	      line_modulo_len(iaxis) = 0.
@@ -1370,9 +1253,7 @@ 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 '//
@@ -1384,12 +1265,14 @@ c	CALL TM_WARN_SUBSPAN (iaxis)
 	    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   CONTINUE
 
 	CALL TM_DEALLO_DYN_LINE(iaxis)
+	CALL FREE_LINE_DYNMEM (iaxis)
 
         iaxis = 0
         status = merr_ok
@@ -1422,12 +1305,6 @@ c	CALL TM_WARN_SUBSPAN (iaxis)
      .     ( cdfstat+pcdferr, status, 'CD_GET_1_AXIS', cdfid, ivar,
      .       no_errstring, no_errstring, *5900 )
 
- 5300   CALL TM_ERRMSG (merr_linstorlim, status, 'CD_GET_1_AXIS',
-     .                  no_descfile, no_stepfile,
-     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .                  no_errstring, *1000)          ! 3/99 soft error
-
-
  5400   CALL TM_ERRMSG
      .     ( cdfstat+pcdferr, status, 'CD_GET_1_AXIS', cdfid, ivar,
      .       'Scale and offset attributes not of the same type', 
diff --git a/fmt/src/cd_get_line_direction.F b/fmt/src/cd_get_line_direction.F
index 395b10a..494ee41 100644
--- a/fmt/src/cd_get_line_direction.F
+++ b/fmt/src/cd_get_line_direction.F
@@ -40,6 +40,7 @@
 *  V692 ACM 7/2014 A cf_role attribute indicates the E direction.
 *  V694 ACM 2/2015 Ensemble axis may have a standard-name attribute "realization"
 *  V694 ACM 4/2015 Fix ticket 2260: set X axis when standard_name is "longitude"
+*  V72+ ACM 10/2015 If using axis names, compare the right # of characters
 *
 *      include files: 
       
@@ -536,14 +537,14 @@ c     .   .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
       IF (line_direction(iaxis).EQ.'NA') THEN
          IF (vupcase(1:3).EQ.'LON') line_direction(iaxis) = 'WE'
          IF (vupcase(1:3).EQ.'LAT') line_direction(iaxis) = 'SN'
-         IF (vupcase(1:3).EQ.'TIME') line_direction(iaxis) = 'TI'
-         IF (vupcase(1:3).EQ.'DATE') line_direction(iaxis) = 'TI'
+         IF (vupcase(1:4).EQ.'TIME') line_direction(iaxis) = 'TI'
+         IF (vupcase(1:4).EQ.'DATE') line_direction(iaxis) = 'TI'
          IF (vupcase(1:3).EQ.'DEP') line_direction(iaxis) = 'UD'
          IF (vupcase(1:3).EQ.'ALT') line_direction(iaxis) = 'DU'
-         IF (vupcase(1:3).EQ.'ELEV') line_direction(iaxis) = 'DU'
+         IF (vupcase(1:4).EQ.'ELEV') line_direction(iaxis) = 'DU'
          IF (vupcase(1:3).EQ.'HEI') line_direction(iaxis) = 'DU'
-         IF (vupcase(1:3).EQ.'LAYER') line_direction(iaxis) = 'DU'
-         IF (vupcase(1:3).EQ.'LEVEL') line_direction(iaxis) = 'DU'
+         IF (vupcase(1:5).EQ.'LAYER') line_direction(iaxis) = 'DU'
+         IF (vupcase(1:5).EQ.'LEVEL') line_direction(iaxis) = 'DU'
       ENDIF
 
       RETURN
diff --git a/fmt/src/cd_make_fmrc_axes.F b/fmt/src/cd_make_fmrc_axes.F
index 3146845..74cfd43 100644
--- a/fmt/src/cd_make_fmrc_axes.F
+++ b/fmt/src/cd_make_fmrc_axes.F
@@ -1,5 +1,5 @@
-	SUBROUTINE CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
-     .			    npts, nT, nF, axcalt, axlagf, status)
+        SUBROUTINE CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+     .                      npts, nT, nF, time2dline, axcalt, axlagf, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -39,12 +39,16 @@
 * it uses the 2d time array stored in line_mem, and optionally an array of
 * time edge positions stored just behind it
 
+* dynamic line mem storage axcalt stores the 2d time array on input, will
+* be reorganized here to store the T calendar time axis
+
 * 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.
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
 
 * include files
         include 'netcdf.inc'
@@ -68,10 +72,9 @@ c        include 'calendar.cmn'
 
 * calling argument declarations
 	LOGICAL	has_edges
-	INTEGER dset, varid, vartype, nT, nF, npts, axcalt, axlagf, status
+	INTEGER dset, varid, vartype, nT, nF, npts, axcalt, axlagf, time2dline, status
 	CHARACTER*(*) vname
 
-
 * internal variable declarations
 	INTEGER bufflen
 	PARAMETER (bufflen = 256)
@@ -83,14 +86,14 @@ c        include 'calendar.cmn'
 	INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
      .		TM_UNITS_CAL, TM_FIND_LIKE_DYN_LINE, STR_SAME,
      .          i, l, n,  nvdim, vdims(8), nvatts, npts2d,
-     .		npts_cdf, ipt1, ipte, iptn, iptnp1,
+     .          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, nleadtimes
-	REAL val, epsilon_23, t0NextForecast
-	REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
-     .       dfirst_delta, ddelta, avg_lag
+     .          units, istat, nlag, nleadtimes, indx
+	REAL    GET_LINE_COORD, val, epsilon_23, t0NextForecast,
+     .          depsilon_46, depsilon, dlast_coord, dfirs_coord,
+     .          dfirst_delta, ddelta, avg_lag, t1, t2
 
         INTEGER tt  ! nice short name
         EQUIVALENCE (tt,lunit_errors)
@@ -101,27 +104,26 @@ c        include 'calendar.cmn'
 !     .            nvdim, vdims, nvatts, coordvar, outflag, status)
 
 * initialize things
-	next_line_storage = next_line_mem_pos
 	do_warn = .FALSE.
 	pCR = CHAR(15)
-	ipt1 = next_line_mem_pos
-	ipte = ipt1 + npts - 1
+
 	npts2d = npts  ! save it
-      epsilon_23 =  2.**(-23) 
-      depsilon_46 =  2.**(-46) 
+	epsilon_23 =  2.**(-23) 
+	depsilon_46 =  2.**(-46) 
 
 *********  FIRST THE 1D CALENDAR TIME AXIS OF THE FMRC  *************
 * Define new axis
 
 	CALL TM_ALLO_TMP_LINE (axcalt, status)
-
+	CALL GET_LINE_DYNMEM (npts, axcalt, status)
+        IF (status .NE. merr_ok) GOTO 5000
 
 * Get units, calendar, origin
-
 * Get the calendar name.
 
       line_cal_name(axcalt) = 'GREGORIAN'   ! default
       maxlen = bufflen
+      vlen = TM_LENSTR1(vname)
       got_it = NC_GET_ATTRIB( dset, varid, 'calendar', do_warn,
      .                        vname(:vlen), maxlen, attlen, attoutflag, 
      .                        buff, val)
@@ -224,13 +226,14 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * save some values needed for the forecast lead time axis
 * average lag time (lag is constant except in case of monthly forecasts)
 * and how many lag time steps before the subsequent forecast begins?
-	avg_lag = (line_mem(ipt1+nT*(nF-1))-line_mem(ipt1))
-     .	        / (nF-1)
-	t0NextForecast = line_mem(ipt1+nT)
+	t1 = GET_LINE_COORD(linemem(time2dline)%ptr,  1          )
+	t2 = GET_LINE_COORD(linemem(time2dline)%ptr, 1+nT*(nF-1) )
+	avg_lag = ( t2 - t1 )/ (nF-1) 
+	t0NextForecast = GET_LINE_COORD(linemem(time2dline)%ptr, 1+nT)
         depsilon = depsilon_46 * ABS(avg_lag)
 	DO nlag = 1, nT-1
-	   IF ( TM_DFPEQ_TOL(line_mem(ipt1+nlag), t0NextForecast, depsilon) )
-     *         GOTO 200
+	   t2 = GET_LINE_COORD(linemem(time2dline)%ptr, 1+nlag)
+	   IF ( TM_DFPEQ_TOL(t2, t0NextForecast, depsilon) )    GOTO 200
 	ENDDO
 	CALL TM_NOTE('Corrupted FMRC time array'//pCR//
      .		     'Time values dont match between forecasts', lunit_errors)
@@ -240,89 +243,108 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * the number of forecasts is nF
 * create the 1D array by traveling along each forecast and pulling out points
 * until we reach the value of the first time step in the next forecast
+
  200	npts  = 0
-	iptn = ipt1                ! start of forecast n
+	ipt1 = 1
+	iptn = 1                ! start of forecast n
+	ipte = nt*nf
+
 	DO n = 1, nF         ! n index loops over forecasts
 	   iptnp1 = iptn + nT
 	   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)) .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)
+*   .. copy early time step values from this forecast into 1d axis
+ 	      t1 = GET_LINE_COORD (linemem(time2dline)%ptr, iptn+l)
+ 	      t2 = GET_LINE_COORD (linemem(time2dline)%ptr, iptnp1)
+	      do while ( (t1 .LT. t2) .AND.
+     .           .NOT. TM_DFPEQ_TOL(t1, t2, depsilon) )
+	         CALL PUT_LINE_COORD ( linemem(axcalt)%ptr, ipt1+npts, t1)
+		 t2 = 0.
+	         IF (has_edges) THEN
+	            t2 = GET_LINE_COORD (lineedg(time2dline)%ptr, iptn+l)
+	            CALL PUT_LINE_COORD (lineedg(axcalt)%ptr, ipt1+npts, t2)
+	         ENDIF
 	         npts  = npts + 1
 	         l = l + 1
+		 
+	         t1 = GET_LINE_COORD (linemem(time2dline)%ptr, iptn+l)
+	         t2 = GET_LINE_COORD (linemem(time2dline)%ptr, iptnp1)
 	      ENDDO
 	   ELSE
 *   .. copy all time step values from the final forecast into the 1D axis
 	      DO l = 0, nT-1
-	         line_mem(ipt1+npts) = line_mem(iptn+l)
-	         IF (has_edges)  line_mem(ipt1+npts+npts2d) =
-     .			         line_mem(iptn+l+npts2d)
-	         npts  = npts + 1
+	         t1 = GET_LINE_COORD (linemem(time2dline)%ptr, iptn+l)
+		 CALL PUT_LINE_COORD (linemem(axcalt)%ptr, ipt1+npts, t1)
+	         t2 = 0
+		 IF (has_edges) THEN
+		    t2 = GET_LINE_COORD (lineedg(time2dline)%ptr, iptn+l)
+		    CALL PUT_LINE_COORD (lineedg(axcalt)%ptr, ipt1+npts, t2)
+		    indx = iptn+l
+	         ENDIF
+		 npts  = npts + 1
 	      ENDDO
 	   ENDIF
 	   iptn = iptnp1
 	ENDDO
 
+*   .. uppermost bound
+
+	IF (has_edges) THEN
+	   t2 = GET_LINE_COORD (lineedg(time2dline)%ptr, indx+1)
+	   CALL PUT_LINE_COORD (lineedg(axcalt)%ptr, ipt1+npts, t2)
+	ENDIF
+
+
 * now that the length of the 1D time axis is known, shift the edge bounds
 * coordinates into their proper spot at the end of the coordinates
-	IF (has_edges) THEN
-	   DO i = 0, npts-1
-	      line_mem(ipt1+npts+i) = line_mem(ipt1+npts2d+i)
-	   ENDDO
-	   line_mem(ipt1+2*npts) = line_mem(ipt1+2*npts2d)
-        ENDIF
 
 * ... until proven otherwise, this will look like an irregular axis
-        line_subsc1(axcalt) = next_line_mem_pos
 	line_dim(axcalt) = npts
-	ipte = ipt1 + npts-1
-	
+
 * from cd_get_1_axis.
 * check for regular spacing according to the data type of incoming data.
 * the variables (depsilon, etc) are in double precision. The tolerance
 * chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
 
 	IF (vartype .EQ. ncdouble) 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(ipt1)) / dfirst_delta )
-
-	   DO 340 i = ipt1+2, ipte	
-	      ddelta = line_mem(i) - line_mem(i-1)
+	   dlast_coord = GET_LINE_COORD(linemem(axcalt)%ptr, npts)
+           dfirs_coord = GET_LINE_COORD(linemem(axcalt)%ptr, 1)
+           dfirst_delta = GET_LINE_COORD(linemem(axcalt)%ptr, 2) - dfirs_coord
+           depsilon = depsilon_46 * 2.*(ABS(dfirs_coord) / dfirst_delta )
+
+	   DO 340 i = 2, npts	
+	      ddelta = GET_LINE_COORD(linemem(axcalt)%ptr, i) - 
+     .                 GET_LINE_COORD(linemem(axcalt)%ptr, i-1)
 	      IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 380
   340	   CONTINUE
 	ELSE
-           dlast_coord = line_mem(ipte)
-           dfirs_coord = line_mem(ipt1)
-           dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
-           depsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
-
-           DO 360 i=ipt1+2,ipte
-              ddelta = line_mem(i) - line_mem(i-1)
+	   dlast_coord = GET_LINE_COORD(linemem(axcalt)%ptr, npts)
+           dfirs_coord = GET_LINE_COORD(linemem(axcalt)%ptr, 1)
+           dfirst_delta = GET_LINE_COORD(linemem(axcalt)%ptr, 2) - dfirs_coord
+           depsilon = epsilon_23 * 2.*(ABS(dfirs_coord) / dfirst_delta )
+
+           DO 360 i=ipt1+2,npts
+	      ddelta = GET_LINE_COORD(linemem(axcalt)%ptr, i) - 
+     .                 GET_LINE_COORD(linemem(axcalt)%ptr, i-1)
               IF (.NOT. TM_FPEQ_EPS(depsilon, dfirst_delta, ddelta) ) GOTO 380
   360      CONTINUE
 	ENDIF
 
 * It's regular - save it as such
 	line_regular(axcalt) = .TRUE.
-	line_start  (axcalt) = line_mem(ipt1)
+	line_start  (axcalt) = GET_LINE_COORD(linemem(axcalt)%ptr, 1)
 	line_delta  (axcalt) = 
-     .              (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+     .              (GET_LINE_COORD(linemem(axcalt)%ptr, npts) - 
+     .               line_start(axcalt) )/ DBLE(npts-1)
 	line_subsc1 (axcalt) = unspecified_int4
+	CALL FREE_LINE_DYNMEM(axcalt)
 
 	GOTO 390
 
 *  Irregular
   380	line_regular(axcalt) = .FALSE.
-	IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
-	IF (.NOT.has_edges) CALL TM_IRREGAX_MID( ipt1, npts )
-	
-
+	IF (.NOT.has_edges) CALL TM_IRREGAX_MID( 
+     .        linemem(axcalt)%ptr, lineedg(axcalt)%ptr, npts )
  390	CONTINUE
  
 * Save the axis name (upper case) and memory storage.  For all irregular axes, 
@@ -330,9 +352,6 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 	CALL TM_NEW_LINE_NAME ( 'TF_CAL_T', buff )
 	line_name(axcalt) = buff
 	line_name_orig(axcalt) = buff
-        IF ( .NOT.line_regular(axcalt) ) THEN
-           next_line_mem_pos =  next_line_storage + 2*npts+1 
-        ENDIF
 	line_dattype(axcalt) = nf_double
 
 *********  NOW FINALLY THE FORECAST LEAD TIME AXIS OF THE FMRC  *************
@@ -375,16 +394,9 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
  5000	RETURN
 
-
- 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_MAKE_FMRC_AXES',
-     .                  no_descfile, no_stepfile,
-     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .                  no_errstring, *5000)
-
  5400	CALL TM_ERRMSG (merr_notimeinfo, status, 'CD_MAKE_FMRC_AXES',
      .                  no_descfile, no_stepfile,
      .                  'unrecognizable time encoding',
      .                  no_errstring, *5000)
-
 	RETURN
 	END
diff --git a/fmt/src/cd_make_fmrc_fcal_axis.F b/fmt/src/cd_make_fmrc_fcal_axis.F
index 0522c63..8b21eb2 100644
--- a/fmt/src/cd_make_fmrc_fcal_axis.F
+++ b/fmt/src/cd_make_fmrc_fcal_axis.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CD_MAKE_FMRC_FCAL_AXIS (dset, ens_ax, nF, axcalt, status)
+	SUBROUTINE CD_MAKE_FMRC_FCAL_AXIS (dset, ens_ax, nF, axcalt, 
+     .           status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -73,22 +74,20 @@
      .		coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
 	INTEGER STR_UPCASE, TM_LENSTR1, TM_FIND_LIKE_DYN_LINE,
      .          i, l, n,  nvdim, vdims(8), nvatts, 
-     .		npts_cdf, ipt1, ipte, iptn, iptnp1,
+     .		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, t0NextForecast
-	REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
-     .       dfirst_delta, ddelta, avg_lag
+	REAL GET_LINE_COORD, val, t0NextForecast,
+     .       depsilon_46, depsilon, dlast_coord, dfirs_coord,
+     .       dfirst_delta, ddelta, avg_lag, t1, t2
 
         INTEGER tt  ! nice short name
         EQUIVALENCE (tt,lunit_errors)
 
-
 * initialize things
-	ipt1 = next_line_mem_pos
-	ipte = ipt1 + nF - 1
+
       depsilon_46 =  2.**(-46) 
 
 * from cd_get_1_axis.
@@ -96,30 +95,30 @@
 * the variables (depsilon, etc) are in double precision. The tolerance
 * chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
 
-	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(ipt1)) / dfirst_delta )
+	dlast_coord = GET_LINE_COORD (linemem(ens_ax)%ptr, nf)
+	dfirs_coord = GET_LINE_COORD (linemem(ens_ax)%ptr, 1)
+        dfirst_delta = GET_LINE_COORD (linemem(ens_ax)%ptr, 2) - dfirs_coord
+        depsilon = depsilon_46 * 2.*(ABS(dfirs_coord) / dfirst_delta )
 
-	DO i = ipt1+2, ipte	
-	   ddelta = line_mem(i) - line_mem(i-1)
+	t1 = dfirs_coord
+	DO i = 2, nf	
+	   t2 = GET_LINE_COORD (linemem(ens_ax)%ptr, i)
+	   ddelta = t2 - t1
 	   IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 100
+	   t1 = t2
 	ENDDO
 
 * It's regular - save it as such
 !	line_regular(ens_ax) = .TRUE.		! already set
-	line_start  (ens_ax) = line_mem(ipt1)
-	line_delta  (ens_ax) = 
-     .              (line_mem(ipte)-line_mem(ipt1))/DBLE(nF-1)
-!	line_subsc1 (ens_ax) = unspecified_int4  ! already set
+	line_start  (ens_ax) = dfirs_coord
+	line_delta  (ens_ax) = (dlast_coord-dfirs_coord)/DBLE(nF-1)
+	
+	IF (line_allocated(ens_ax) .GT. 0) CALL FREE_LINE_DYNMEM(ens_ax) 
 	GOTO 200
 
 *  Irregular
  100	line_regular(ens_ax) = .FALSE.
-	line_subsc1(ens_ax)  = next_line_mem_pos
-	IF ((next_line_mem_pos+2*nF+1).GT.maxlinestore) GOTO 5300
 !	CALL TM_IRREGAX_MID( ipt1, nF )  -- not needed.  have real edges
-        next_line_mem_pos =  next_line_mem_pos + 2*nF + 1
 	
  200	CONTINUE
  
@@ -143,11 +142,5 @@
 
  5000	RETURN
 
-
- 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_MAKE_FMRC_FCAL_AXIS',
-     .                  no_descfile, no_stepfile,
-     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .                  no_errstring, *5000)
-
 	RETURN
 	END
diff --git a/fmt/src/cd_rd_r8_arr.F b/fmt/src/cd_rd_r8_arr.F
index 84c9616..4875ae9 100644
--- a/fmt/src/cd_rd_r8_arr.F
+++ b/fmt/src/cd_rd_r8_arr.F
@@ -64,7 +64,7 @@
 
 * argument declarations
       INTEGER cdfid, varid, start, n, dtype, status
-      REAL*8  dvals(n)
+      REAL*8  dvals(*)
       CHARACTER*(*) errstr
 
       include 'netcdf.inc'
diff --git a/fmt/src/cd_scan_vars.F b/fmt/src/cd_scan_vars.F
index bf0b4a2..2ef2180 100644
--- a/fmt/src/cd_scan_vars.F
+++ b/fmt/src/cd_scan_vars.F
@@ -182,8 +182,6 @@
       EQUIVALENCE ( ds_precision, cd_data_type )
 
 * initialize: save the state of grid memory prior to any new definitions
-* ... save original start of free line memory
-	orig_line_mem = next_line_mem_pos
 
 * ... flag all axes as non-reversed as the default
 	DO 10 i = max_lines, line_ceiling
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index 0097332..d2e2624 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -126,6 +126,10 @@
 *                  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.
+* 10/6/2017 *acm* See fix in cd_get_line_direction.F, where axis or dim named 
+*                 TIME but with no attributes was not marked in the T direction.
+*                 An axis made from a dimension-only is not written out as the 
+*                 record axis.
 
 * argument definitions:
 *     dset    - dset (if netcdf file, for getting name and attribute 
@@ -424,8 +428,8 @@
       CALL CD_SET_MODE(cdfid, pcd_mode_define, status)
       IF ( status .NE. merr_ok ) RETURN
 
-* define the dimension
-      IF ( recdim ) THEN
+* define the dimension (if its just a dimension, will not write as a record axis)
+      IF ( recdim .AND. .NOT.line_dim_only(iaxis)) THEN
 #ifdef usingDODSf2cUnderscore
          cdfstat = NF_DEF_DIM_( cdfid, name(:nlen), NF_UNLIMITED, dimid )
       ELSE
diff --git a/fer/utl/gcf_set_normal_axis.F b/fmt/src/copy_line_coords.F
similarity index 75%
copy from fer/utl/gcf_set_normal_axis.F
copy to fmt/src/copy_line_coords.F
index 3a0ed70..1e3a6ec 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fmt/src/copy_line_coords.F
@@ -1,8 +1,10 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+	 SUBROUTINE COPY_LINE_COORDS ( line, newline, npts )
 
+*
+*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
 *  hereafter referred to as NOAA/PMEL/TMAP.
 *
 *  Access and use of this software shall impose the following
@@ -33,22 +35,29 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* Copy coordinate values for for a dynamically stored line to another line
+
+* programmer - Ansley Manke
+* revision 0.0 - 26-Jun-2016
+* V72 8/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+*                Following main-memory dynamic 
 
-* 
-* V720 3/16 *acm* 
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-* calling argument declarations
-	INTEGER		grid, idim
+* calling argument declarations:
+	INTEGER	npts
+	REAL	line(*), newline(*)
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+	INTEGER i
+
+	DO i = 1, npts
+	   newline(i) = line(i)
+	ENDDO
 
 	RETURN
 	END
+
diff --git a/ppl/complot/symwid.F b/fmt/src/get_line_coord.F
similarity index 79%
copy from ppl/complot/symwid.F
copy to fmt/src/get_line_coord.F
index dfd0e3a..c5156cd 100644
--- a/ppl/complot/symwid.F
+++ b/fmt/src/get_line_coord.F
@@ -1,9 +1,10 @@
-	FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
+	 REAL FUNCTION GET_LINE_COORD ( line, indx )
 
 *
+*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
 *  hereafter referred to as NOAA/PMEL/TMAP.
 *
 *  Access and use of this software shall impose the following
@@ -33,17 +34,23 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* Split off from file symbel.F 5/2015
-
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-	CHARACTER STRING*(*)
-	NC=-IABS(NCHAR)
-C
-C	THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
-	SS=0.
-	IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
-	SYMWID=SS
+*
+* Return the value of a coordinate for a dynamically stored line at index indx
+
+* programmer - Ansley Manke
+* revision 0.0 - 26-Jun-2016
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+*                Following main-memory dynamic 
+
+
+        IMPLICIT NONE
+
+* calling argument declarations:
+	INTEGER	indx
+	REAL	line(*)
+
+	GET_LINE_COORD = line(indx)
+
 	RETURN
 	END
+
diff --git a/fmt/src/gt_get_time_axis.F b/fmt/src/gt_get_time_axis.F
index 8f3d143..e28ef48 100644
--- a/fmt/src/gt_get_time_axis.F
+++ b/fmt/src/gt_get_time_axis.F
@@ -104,7 +104,6 @@
 	external xunits_data
 	include 'xio.cmn_text'
 	external xio_data
-
 *
 * LOCAL DEFINITIONS
 	CHARACTER*1080	string
@@ -121,6 +120,10 @@
 	PARAMETER 	( dp_epsilon = 1.D-10)
 	PARAMETER	( scr = 0 )
 
+
+* Initialize to "no line" for error return
+        GT_GET_TIME_AXIS = int4_init
+
 * Determine the length and delta of the time axis, check regularity, and find
 * first timestep
 	nsteps = 0
@@ -160,17 +163,15 @@
 	IF (line_regular(scr)) THEN
 * ... regular
 	  line_delta(scr) = delta
-	  line_subsc1(scr) = unspecified_int4
 	ELSE
 * ... irregular
-* *kob* 8/96 removed all bpos and bpos0 stuff
+
+          CALL GET_LINE_DYNMEM (nsteps, scr, status) 
+          IF (status .NE. merr_ok) GOTO 9999
+
 	  line_start(scr)   = unspecified_val8
 	  line_delta(scr)   = unspecified_val8
-	  line_subsc1(scr) = next_line_mem_pos
-	  cpos = line_subsc1(scr)
-	  cpos1 = cpos
-	  IF ((line_subsc1(scr)+2*line_dim(scr)) .GT. maxlinestore)
-     .	     GOTO 9000
+	  cpos = 1
 * Create the time axis and grid box list
 * kob - 8/96 - modify so loop not based on itt (now a real) but instead on
 *		nsteps_in_file
@@ -184,19 +185,21 @@
      .                  sf_1step(istp))/delta) + 1
 	      itt = sf_1step(istp)
 	      DO 110 i = 1,nsteps_in_file
-	        line_mem(cpos) = itt
-	        cpos = cpos+1
-		itt = itt + delta
+	         CALL PUT_LINE_COORD ( linemem(scr)%ptr, cpos, itt )
+	         cpos = cpos+1
+		 itt = itt + delta
   110	      CONTINUE
 	    ENDIF
+
   120	  CONTINUE
-	  CALL TM_IRREGAX_MID(line_subsc1(scr),line_dim(scr))
+          CALL TM_IRREGAX_MID( linemem(scr)%ptr, lineedg(scr)%ptr, nsteps )
+
 	ENDIF
 
 * Time axis created, fill in the missing pieces
 * ... name?
-        line_fixname(scr) = .FALSE.
-        IF (line_name(scr) .EQ. 'TIME') line_fixname(scr) = .TRUE.
+        line_fixname(scr) = line_name(scr) .EQ. 'TIME'
+
 	CALL TM_NEW_LINE_NAME('TIME',line_name(scr))
 	IF (line_fixname(scr)) line_name_orig(scr) = 'TIME'
 
@@ -252,34 +255,43 @@
 * ...Warn about possible gaps in axis
 * Bug fix - change next statment from compound if to if then ---kob 10/8/91
 	IF (.NOT. line_regular(nline)) THEN
-           IF (.NOT. TM_CHECK_BOX_LOC(nline) ) GOTO 9100
+           IF (.NOT. TM_CHECK_BOX_LOC(linemem(scr)%ptr,
+     .                   lineedg(scr)%ptr, nsteps ) ) GOTO 9100
+	   CALL TM_COPY_LINE ( scr, nline )
+	   line_name(nline) = line_name(scr)
+        ENDIF
+
+*  deallocate the temporary line storage used to compile the axis.
+        IF ( .NOT. line_regular(scr) ) THEN
+           CALL FREE_LINE_DYNMEM(scr)
+           line_regular(scr) = .TRUE.
         ENDIF
-!	IF (.NOT. line_regular(nline) .AND.  
-!  .	 .NOT. TM_CHECK_BOX_LOC(nline) ) GOTO 9100
 
 * Time axis complete
 	GT_GET_TIME_AXIS = nline
-	line_cal_name(scr) = 'GREGORIAN'  ! Restore to the default
+	line_cal_name(nline) = 'GREGORIAN'  ! Restore to the default
 
-* If necessary - find next free line memory storage position
-	IF (.NOT. line_regular(nline))
-     .	 next_line_mem_pos = next_line_mem_pos + 2*line_dim(nline) + 1
 	status = merr_ok
 	GOTO 9999
 
- 9000	CALL TM_ERRMSG (merr_linstorlim, status,'GT_GET_TIME_AXIS',
-     .			no_descfile, no_stepfile,
-     .			'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .			no_errstring, *9999)
-
- 9100	CALL TM_ERRMSG (merr_badlinedef, status, 'GT_GET_TIME_AXIS',
+ 9100   CONTINUE
+        IF ( .NOT. line_regular(scr) ) THEN
+           CALL FREE_LINE_DYNMEM(scr)
+           line_regular(scr) = .TRUE.
+        ENDIF
+        CALL TM_ERRMSG (merr_badlinedef, status, 'GT_GET_TIME_AXIS',
      .			no_descfile, no_stepfile,
      .			'A gap or overlap exists in time axis',
      .			no_errstring, *9999)
 
- 9200	CALL TM_ERRMSG (merr_linelim, status, 'GT_GET_TIME_AXIS',
+ 9200   CONTINUE
+        IF ( .NOT. line_regular(scr) ) THEN
+           CALL FREE_LINE_DYNMEM(scr)
+           line_regular(scr) = .TRUE.
+        ENDIF
+        CALL TM_ERRMSG (merr_badlinedef, status, 'GT_GET_TIME_AXIS',
      .			no_descfile, no_stepfile,
-     .			'MAX='//TM_STRING(DBLE(max_lines)), no_errstring,
+     .			'error defining axis for descriptor file', no_errstring,
      .			*9999)
 
 * Exit subroutine
diff --git a/ppl/complot/symwid.F b/fmt/src/put_line_coord.F
similarity index 79%
copy from ppl/complot/symwid.F
copy to fmt/src/put_line_coord.F
index dfd0e3a..e48f951 100644
--- a/ppl/complot/symwid.F
+++ b/fmt/src/put_line_coord.F
@@ -1,9 +1,10 @@
-	FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
+	 SUBROUTINE PUT_LINE_COORD ( line, indx, value )
 
 *
+*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
 *  hereafter referred to as NOAA/PMEL/TMAP.
 *
 *  Access and use of this software shall impose the following
@@ -33,17 +34,23 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* Split off from file symbel.F 5/2015
-
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-	CHARACTER STRING*(*)
-	NC=-IABS(NCHAR)
-C
-C	THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
-	SS=0.
-	IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
-	SYMWID=SS
+*
+* Set a coordinate value for for a dynamically stored line at index indx
+
+* programmer - Ansley Manke
+* revision 0.0 - 26-Jun-2016
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+*                Following main-memory dynamic 
+
+
+        IMPLICIT NONE
+
+* calling argument declarations:
+	INTEGER	indx
+	REAL	line(*), value
+
+	line(indx) = value
+
 	RETURN
 	END
+
diff --git a/fmt/src/tm_adjust_bounds.F b/fmt/src/tm_adjust_bounds.F
index b2f14f9..e969c3d 100644
--- a/fmt/src/tm_adjust_bounds.F
+++ b/fmt/src/tm_adjust_bounds.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_ADJUST_BOUNDS(iaxis, modlen, axwwlen, ok)
+	SUBROUTINE TM_ADJUST_BOUNDS(iaxis, npts, modlen, axwwlen, ok)
 
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -40,26 +40,30 @@
 * bounds on a DEFINE AXIS given without cell edges or from a netCDF file
 * where bounds were not included in the file.
 *
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+*
 * return axwwlen
 
 #	include	"tmap_dset.parm"
 	include	'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 
+* Argument declarations
 	LOGICAL ok
-	INTEGER iaxis
+	INTEGER iaxis, npts
 	REAL	modlen, axwwlen
 
+* Local declarations
 	LOGICAL TM_FPEQ
 	INTEGER TM_LENSTR1, ipt1, ipte
-	REAL	TM_WW_AXLEN, delta
+	REAL	GET_LINE_COORD, TM_WW_AXLEN, 
+     .		delta, pt1, ptn
 	REAL*4	r4delta
 
 * 
 	ok = .TRUE.
 	axwwlen = TM_WW_AXLEN(iaxis)
 
-
 * Exit if the modulo length is 0. which indicates modulo length is axis length.
 	IF (modlen .EQ. 0.) GOTO 5000
 
@@ -69,12 +73,12 @@
 * Exit if the line is regularly spaced
 	IF ( line_regular(iaxis) ) GOTO 5000
 
-	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.
+	pt1 = GET_LINE_COORD (linemem(iaxis)%ptr,1)
+	ptn = GET_LINE_COORD (linemem(iaxis)%ptr, npts)
+	delta = modlen - (ptn  - pt1)
+	
+	CALL PUT_LINE_COORD ( lineedg(iaxis)%ptr, 1, pt1 - delta/2. )
+	CALL PUT_LINE_COORD ( lineedg(iaxis)%ptr, npts+1, ptn + delta/2. )
 
 * did the adjustment keep the length within the defined moudulo length?
 * (probably always the case if we've got this far.)
diff --git a/fmt/src/tm_check_bnds.F b/fmt/src/tm_check_bnds.F
index 86b98e3..586a4a2 100644
--- a/fmt/src/tm_check_bnds.F
+++ b/fmt/src/tm_check_bnds.F
@@ -1,4 +1,5 @@
-	LOGICAL FUNCTION TM_CHECK_BNDS (nline, nb, doubletype, vname)
+	LOGICAL FUNCTION TM_CHECK_BNDS (line, line_edges, npts, 
+     .                         iaxis, doubletype, vname)
 
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,7 +35,6 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-*
 * Checks to make sure bounds are contiguous and the data points are 
 * enclosed by its bounds on an axis
 
@@ -48,7 +48,7 @@
 *                  N+1 bounds) and no need to check for gaps for N+1 bounds
 * V694  5/15 *acm* Match precision for bounds checks (as is done for coords).
 * V696 10/15 *acm* Ticket 2321: Fix logic when detecting coords that match grid bounds
-
+* V72 6/17 *acm*   For trac enhancement #767 -- dynamic coordinate storage. 
 
         INCLUDE 'xio.cmn_text'
 	INCLUDE 'tmap_dims.parm'
@@ -58,13 +58,13 @@
 
 * Arguments
 	LOGICAL doubletype
-	INTEGER nline, nb
+	INTEGER iaxis, npts
+	REAL	line(*), line_edges(*)
         CHARACTER*(*) vname
 
 * Internal definitions
         LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal, equal_ends, overlapping
-	INTEGER TM_LENSTR1, npts, ipt1, ibx1, i, ngap, vlen, status,
-     .          nothing
+	INTEGER TM_LENSTR1, ipt1, ibx1, i, ngap, vlen, status
         REAL*8 pt, del, bhi, blo
 	
 	REAL epsilon_23, epsilon
@@ -77,180 +77,78 @@
         epsilon_23 =  2.**(-22) 
         depsilon_46 =  2.**(-45) 
 
-	ipt1 = line_subsc1(nline)
-	npts = line_dim(nline)
-	ibx1 = ipt1 + npts
-        IF (ibx1 + nb .GT. maxlinestore) GOTO 5100
-
-        blast = REAL(line_mem(ibx1+1))  ! First box_hi
+	blast = line_edges(2)  ! First box-hi
         TM_CHECK_BNDS = .TRUE.
         ngap = 0
         overlapping = .FALSE.
 
-        IF (nb .EQ. 2*npts) THEN
-	
-	   first_delta = line_mem(ipt1+1) - line_mem(ipt1)
-           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
-           epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
-	   
-           IF (line_regular(nline)) THEN
-
-              pt = line_start(nline)
-              del = line_delta(nline)
-	      DO 100 i = 0, npts-1
-                 blo = line_mem(ibx1+2*i)
-                 bhi = line_mem(ibx1+2*i+1)
-	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-		   IF (doubletype) THEN
-                      equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) 
-		   ELSE
-                      equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
-		   ENDIF
-		   IF (.NOT. equal) THEN
-		      TM_CHECK_BNDS = .FALSE.
-                     RETURN
-		   ENDIF
-                ENDIF
-	        pt = line_start(nline) + DBLE(i+1)* del
-
-  100           CONTINUE
-
-            ELSE ! (not line_regular)
-
-
-	      DO 200 i = 0, npts-1
-                pt = line_mem(ipt1+i)
-                blo = line_mem(ibx1+2*i)
-                bhi = line_mem(ibx1+2*i+1)
-	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-		
-		   IF (doubletype) THEN
-                      equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
-		   ELSE
-                      equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
-		   ENDIF
-		   IF (.NOT. equal) THEN
-		      TM_CHECK_BNDS = .FALSE.
-                     RETURN
-		   ENDIF
-
-                   RETURN
-	        ENDIF
-                IF (i .GE. 1) THEN
-		   IF (doubletype) THEN
-  		      equal_ends = TM_DFPEQ_TOL(blast, REAL(blo), depsilon)
-		   ELSE
-  		      equal_ends = TM_FPEQ_EPS(epsilon, blast, REAL(blo))
-	           ENDIF
-		   IF (.NOT.equal_ends .AND. blo.LT.blast) THEN 
-		      overlapping = .TRUE.
-		      GOTO 330
-		   ENDIF
-                   IF (.NOT. equal_ends ) THEN
-                      ngap = ngap + 1
-                      line_mem(ibx1+2*i) = blast
-		   ENDIF
-                   blast = REAL(bhi)
-                ENDIF
-
-  200        CONTINUE
-           ENDIF ! line_regular
-
-*  Change from N*2 storage of bounds to N+1 edges.
-
-           DO 300 i = 0, npts-1
-              bhi = line_mem(ibx1+2*i+1)
-              line_mem(ibx1+i+1) = bhi
-  300      CONTINUE
-
-           IF (ngap .EQ. 0) THEN
-              TM_CHECK_BNDS = .TRUE.
-              RETURN
-           ELSE
-
-             vbuff = vname   
-             vlen = TM_LENSTR1(vbuff)
-             CALL WARN( 'Axis definition error on axis: ' 
+        first_delta = line(2) - line(1)
+        depsilon = depsilon_46 * 2.*(ABS(line(1)) / first_delta )
+        epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
+
+        DO i = 1, npts
+           pt = line(i)
+           blo = line_edges(2*(i-1)+1)
+           bhi = line_edges(2*(i-1)+2)
+           IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
+
+              IF (doubletype) THEN
+                 equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
+              ELSE
+                 equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
+              ENDIF
+              IF (.NOT. equal) THEN
+                 TM_CHECK_BNDS = .FALSE.
+                 GOTO 5000
+              ENDIF
+
+              GOTO 5000
+           ENDIF
+           IF (i .GT. 1) THEN
+              IF (doubletype) THEN
+                 equal_ends = TM_DFPEQ_TOL(blast, REAL(blo), depsilon)
+              ELSE
+                 equal_ends = TM_FPEQ_EPS(epsilon, blast, REAL(blo))
+              ENDIF
+              IF (.NOT.equal_ends .AND. blo.LT.blast) THEN 
+                 overlapping = .TRUE.
+                 GOTO 330
+              ENDIF
+              IF (.NOT. equal_ends ) THEN
+                 ngap = ngap + 1
+                 line_edges(2*(i-1)+1) = blast
+              ENDIF
+              blast = REAL(bhi)
+	      ENDIF
+
+	ENDDO
+
+	IF (ngap .EQ. 0) THEN
+	   TM_CHECK_BNDS = .TRUE.
+	   GOTO 5000
+	ELSE
+
+	   vbuff = vname   
+	   vlen = TM_LENSTR1(vbuff)
+	   CALL WARN( 'Axis definition error on axis: ' 
      .               //vbuff(:vlen))
-             CALL WARN(
+	   CALL WARN(
      .        'Bounds given describe non-contiguous axis cells ')
-             CALL WARN(
+	   CALL WARN(
      .         'Using the LOWER bound specified for each axis cell')
-             TM_CHECK_BNDS = .TRUE.
+	   TM_CHECK_BNDS = .TRUE.
 
-           ENDIF
-  330      IF (overlapping) THEN
-              vbuff = vname   
-              vlen = TM_LENSTR1(vbuff)
-              CALL WARN( 'Axis definition error on axis: '
+	ENDIF
+
+  330	IF (overlapping) THEN
+	   vbuff = vname   
+	   vlen = TM_LENSTR1(vbuff)
+	   CALL WARN( 'Axis definition error on axis: '
      .        //vbuff(:vlen)//'. Bounds describe cells '//
      .        'that overlap one another ')
-              TM_CHECK_BNDS = .FALSE.
-	   ENDIF
-
-
-       ELSE  ! bounds are already specified as N+1 values
-
-          IF (line_regular(nline)) THEN
-             pt = line_start(nline)
-             del = line_delta(nline)
-             DO 400 i = 0, npts-1
-                blo = line_mem(ibx1+i)
-                bhi = line_mem(ibx1+i+1)
-
-	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-		   IF (doubletype) THEN
-                      IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
-                         nothing = 0
-                      ELSE
-                         TM_CHECK_BNDS = .FALSE.
-		      ENDIF
-		   ELSE
-                      IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
-                         nothing = 0
-                      ELSE
-                         TM_CHECK_BNDS = .FALSE.
-		      ENDIF
-		   ENDIF
-                   RETURN
-	        ENDIF
-                pt = line_start(nline) + FLOAT(i+1)* del
-
-  400        CONTINUE
-
-          ELSE ! line_regular
-  
-	     DO 500 i = 0, npts-1
-                pt = line_mem(ipt1+i)
-                blo = line_mem(ibx1+i)
-                bhi = line_mem(ibx1+i+1)
-	        IF ( (pt .LT. blo) .OR.  (pt .GT. bhi) ) THEN
-		   IF (doubletype) THEN
-                      IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
-                         nothing = 0
-                      ELSE
-                         TM_CHECK_BNDS = .FALSE.
-		      ENDIF
-		   ELSE
-                      IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
-                         nothing = 0
-                      ELSE
-                         TM_CHECK_BNDS = .FALSE.
-		      ENDIF
-		   ENDIF
-                   RETURN
-	        ENDIF
-
-  500        CONTINUE
-          ENDIF ! line_regular
-
-       ENDIF
+	   TM_CHECK_BNDS = .FALSE.
+	ENDIF
 
  5000  RETURN
- 5100  TM_CHECK_BNDS = .FALSE.
-       CALL TM_ERRMSG (merr_linstorlim, status, 'TM_CHECK_BNDS',
-     .                  no_descfile, no_stepfile,
-     .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .                  no_errstring, *5000)
 
       END
diff --git a/fmt/src/tm_check_bnds_centered.F b/fmt/src/tm_check_bnds_centered.F
index 4d81e23..f18de4b 100644
--- a/fmt/src/tm_check_bnds_centered.F
+++ b/fmt/src/tm_check_bnds_centered.F
@@ -1,4 +1,5 @@
-	LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (nline, doubletype)
+	LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (line, line_edges, npts, 
+     .		iaxis, doubletype)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -42,41 +43,45 @@
 *                  whether the boxes are equal sized.
 * V601 *acm* 9/19  Fix bug 1434; check bounds for regularly-spaced axes 
 * V694  5/15 *acm* Match precision for bounds checks (as is done for coords).
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
+*                line and line_edges are the coordinates and edges for this line
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 
-* Argument declaration
-	LOGICAL doubletype
-	INTEGER nline
+* Argument declarations
+	REAL	line(*), line_edges(*)
+	LOGICAL doubletype, regular
+	INTEGER npts, iaxis
 
 * Local variable declarations
         LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal
-	INTEGER ipt1, npts, ibx1, i
+	INTEGER i
         REAL diff_hi, diff_lo, diff_last
-        REAL pt, del
+        REAL pt, del, blo, bhi
 	REAL epsilon_23, epsilon
 	REAL*8 depsilon_46, depsilon, first_delta
 
-      epsilon_23 =  2.**(-23) 
-      depsilon_46 =  2.**(-46) 
+	epsilon_23 =  2.**(-23) 
+	depsilon_46 =  2.**(-46) 
 
-	ipt1 = line_subsc1(nline)
-	npts = line_dim(nline)
-	ibx1 = ipt1 + npts
+	first_delta = line(2) - line(1)
 
-	first_delta = line_mem(ipt1+1) - line_mem(ipt1)
-	depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
-	epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+	depsilon = depsilon_46 * 2.*(ABS(line(1)) / first_delta )
+	epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
 
-        IF (line_regular(nline)) THEN
-           pt = line_start(nline)
-           del = line_delta(nline) 
+        IF (line_regular(iaxis)) THEN
+           pt = line_start(iaxis)
+           del = line_delta(iaxis) 
 
-	   DO 100 i = 0, npts-1
-             diff_hi = line_mem(ibx1+i+1) - pt
-             diff_lo = pt - line_mem(ibx1+i)
+	   DO 100 i = 1, npts
+
+             blo = line_edges(2*(i-1)+1)
+             bhi = line_edges(2*(i-1)+2)
+
+	     diff_hi = bhi - pt
+             diff_lo = pt - blo
 
 	     IF (doubletype) THEN
 	       equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
@@ -89,22 +94,25 @@
 	        RETURN
 	     ENDIF
 
-             IF (i .GT. 0) THEN
+             IF (i .GT. 1) THEN
                 IF (diff_hi .NE. diff_last) THEN
 	           TM_CHECK_BNDS_CENTERED = .FALSE.
 	           RETURN
                 ENDIF
 	     ENDIF
              diff_last = diff_hi
-             pt = float(i+1) * del + line_start(nline)
+             pt = float(i) * del + line_start(iaxis)
 
   100	   CONTINUE
 
         ELSE  ! not line_regular
    
-	   DO 200 i = 0, npts-1
-             diff_hi = line_mem(ibx1+i+1) - line_mem(ipt1+i)
-             diff_lo = line_mem(ipt1+i)- line_mem(ibx1+i)
+	   DO 200 i = 1, npts
+             blo = line_edges(2*(i-1)+1)
+             bhi = line_edges(2*(i-1)+2)
+
+             diff_hi = bhi - line(i)
+             diff_lo = line(i)- blo
 
 	     IF (doubletype) THEN
 	       equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
@@ -116,7 +124,7 @@
 	        RETURN
 	     ENDIF
 
-             IF (i .GT. 0) THEN
+             IF (i .GT. 1) THEN
                 IF (diff_hi .NE. diff_last) THEN
 	           TM_CHECK_BNDS_CENTERED = .FALSE.
 	           RETURN
diff --git a/fmt/src/tm_check_box_loc.F b/fmt/src/tm_check_box_loc.F
index 0883cbd..efc849d 100644
--- a/fmt/src/tm_check_box_loc.F
+++ b/fmt/src/tm_check_box_loc.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION TM_Check_box_loc (nline)
+	LOGICAL FUNCTION TM_CHECK_BOX_LOC (line, line_edges, npts)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -39,27 +39,26 @@
 *
 * revision 0.00 - 05/26/88 - by M. Verschell for PMEL/TMAP
 * V63  *acm* 10/09 Changes for gfortran build
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
+*                line and line_edges are the coordinates and edges for this line
 *
-* Argument
-	INTEGER*4	nline
+* Arguments
+	REAL	line(*), line_edges(*)
+	INTEGER	npts
 *
 	include 'tmap_dims.parm'
 #include "tmap_dset.parm"
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
-*
-	INTEGER*4	ipt1, npts, ibx1, i, nothing
-	LOGICAL		TM_DFPEQ
+
+	INTEGER	i, nothing
+	LOGICAL	TM_DFPEQ
 	REAL*8 a,b1,b2
-*
-	ipt1 = line_subsc1(nline)
-	npts = line_dim(nline)
-	ibx1 = ipt1 + npts
 
-	DO 100 i=0,npts-1
-	  a = line_mem(ipt1+i)
-	  b1 = line_mem(ibx1+i)
-	  b2 = line_mem(ibx1+i+1)
+	DO 100 i = 1,npts-1
+	  a = line(i)
+	  b1 = line_edges(i)
+	  b2 = line_edges(i+1)
 	  IF (a .LT. b1 .OR. a .GT. b2) THEN
             IF (TM_DFPEQ(a,b1) .OR. TM_DFPEQ(a,b2) ) THEN
                nothing = 0
@@ -70,6 +69,6 @@
 	  ENDIF
   100	CONTINUE
 
-	TM_Check_box_loc = .TRUE.
+	TM_CHECK_BOX_LOC = .TRUE.
 	RETURN
 	END
diff --git a/fmt/src/tm_check_coords.F b/fmt/src/tm_check_coords.F
index eeaa49f..18476d1 100644
--- a/fmt/src/tm_check_coords.F
+++ b/fmt/src/tm_check_coords.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_CHECK_COORDS (ipt1, ipte, is_double, use_strict, 
+	SUBROUTINE TM_CHECK_COORDS (line, npts, is_double, use_strict, 
      .                              has_repeated, misordered, micro, 
      .                              epsilon, depsilon)
 
@@ -36,6 +36,8 @@
 *
 *
 * Ferret v7.1 *acm* 1/13/2017
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+
 * This routine replaces identical logic in cd_get_1_axis and xeq_define, 
 * checking for repeated coordinates and doing micro-adjusting if possible.
 *
@@ -43,7 +45,7 @@
 * or xeq_define.Apply micro-adjusging to correct this, unless flag use_strict is set.
 
 * Arguments
-* ipt1, ipte  range of values in line_mem
+* line  coordinates for the line
 * 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.
@@ -64,8 +66,8 @@
 * argument declarations
 
 	LOGICAL is_double, has_repeated, misordered, use_strict
-	INTEGER ipt1, ipte
-	REAL	micro, epsilon, depsilon
+	INTEGER	npts
+	REAL	line(*), micro, epsilon, depsilon
 
 * Local variable declarations
 	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS
@@ -80,20 +82,19 @@
 	has_repeated = .FALSE.
 	misordered = .FALSE.
 
-
-	IF (ipte-ipt1 .LE. 1) RETURN
-
 * Set epsilon value for comparing coordinates
 
 	epsilon = 0.
 	depsilon = 0.
 
+	IF (npts .LT. 2) RETURN
+
         IF (is_double) THEN
 
-           dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+           dfirst_delta = line(2) - line(1)
 	   IF (dfirst_delta .LT. depsilon_46) THEN
-	      DO i = ipt1+2, ipte
-                dfirst_delta = line_mem(i) - line_mem(i-1) 
+	      DO i = 2, npts
+                dfirst_delta = line(i) - line(i-1) 
 		IF (dfirst_delta .GE. depsilon_46) EXIT  ! from loop
 	      ENDDO
 	      IF (dfirst_delta .LT. depsilon_46) THEN
@@ -101,18 +102,18 @@
 		 GOTO 1000
 	      ENDIF
 	   ENDIF
-           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipte)) / dfirst_delta )
-           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+           depsilon = depsilon_46 * 2.*(ABS(line(npts)) / dfirst_delta )
+           depsilon = depsilon_46 * 2.*(ABS(line(1)) / 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 )
+           dfirst_delta = line(2) - line(1)
+           epsilon = epsilon_23 * 2.*(ABS(line(npts)) / first_delta )
+           epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
 	   
 	   IF (first_delta .LT. epsilon_23) THEN
-	      DO i = ipt1+2, ipte
-                first_delta = line_mem(i+1) - line_mem(i) 
+	      DO i = 1, npts
+                first_delta = line(i+1) - line(i) 
 		IF (first_delta .GE. epsilon_23) EXIT  ! from loop
 	      ENDDO
 	      IF (first_delta .LT. epsilon_23) THEN
@@ -129,15 +130,15 @@
 	IF (micro .GT. 0.) THEN
 	   micro_adj = micro
 	ELSE
-	   micro_adj = 1E-7 * (line_mem(ipte) - line_mem(ipt1))
+	   micro_adj = 1E-7 * (line(npts) - line(1))
 	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)
+	   DO 110 i1 = 2, npts
+              delta = line(i1) - line(i1-1)
               IF (TM_DFPEQ_TOL(delta, zero, depsilon) ) THEN
 	          has_repeated = .TRUE.
 		  GOTO 130
@@ -146,8 +147,8 @@
 
 	ELSE
            zero = 0.0
-	   DO 120 i1 = ipt1+1, ipte
-	      delta = line_mem(i1) - line_mem(i1-1)
+	   DO 120 i1 = 2, npts
+	      delta = line(i1) - line(i1-1)
 	      IF (TM_FPEQ_EPS(epsilon, delta, zero) ) THEN
 	          has_repeated = .TRUE.
 		  GOTO 130
@@ -165,35 +166,35 @@
 * ... make micro-adjustments if axis has repeated values (4/99)
 
         IF (micro_adj .EQ. 0.) THEN
-           i1 = ipt1+1
+           i1 = 1
            misordered = .TRUE.
            GOTO 1000
         ENDIF
 
-        i0 = ipt1
+        i0 = 1
 
 * --- adjust coordinates coming in as double-precision
 
         IF (is_double) THEN
 
-           DO 170  i1 = ipt1+1, ipte
+           DO 170  i1 = 2, npts
 	    
-               delta = line_mem(i1) - line_mem(i1-1)
+               delta = line(i1) - line(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)
+                  DO 140 i2 = i1, npts
+                        delta = line(i2) - line(i1)
                         IF ( delta .GT. depsilon ) GOTO 150
  140              CONTINUE
-                  i2 = ipte + 1    ! one beyond last value
+                  i2 = npts + 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)
+                  delta = line(i2)-line(i1)
                   IF (.NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND. 
-     .                 line_mem(i2).GT.line_mem(i1)) THEN
+     .                 line(i2).GT.line(i1)) THEN
                      i0 = i1-1
                      i3 = i2
                   ENDIF
@@ -201,8 +202,8 @@
 * 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)
+     .                line(i3) - line(i0) ) THEN
+                     madj = (line(i3)-line(i0))/(i2-i1+1)
                      IF (madj .EQ. 0.)  THEN
 	                misordered = .TRUE.
 	                GOTO 1000
@@ -210,12 +211,12 @@
 	          ENDIF
 
                   DO 160 i3 = i1, i2-1
-                     line_mem(i3) = line_mem(i3) + (i3-i1+1)* madj
+                     line(i3) = line(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
+                  delta = line(i2)-line(i2-1)
+                  IF ( i2 .LT. npts .AND. .NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND.
+     .		      (line(i2-1) .GE. line(i2)))  THEN
 	             misordered = .TRUE.
 	             GOTO 1000
                   ENDIF
@@ -226,24 +227,24 @@
 * --- adjust coordinates coming in as single-precision
 	ELSE ! single
 
-           DO 270  i1 = ipt1+1, ipte
+           DO 270  i1 = 2, npts
 	    
-              delta = line_mem(i1) - line_mem(i1-1)
+              delta = line(i1) - line(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)
+                 DO 240 i2 = i1, npts
+                    delta = line(i2) - line(i1)
                     IF (delta .GT. epsilon) GOTO 250
  240             CONTINUE
-                 i2 = ipte + 1    ! one beyond last value
+                 i2 = npts + 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)
+                 delta = line(i2)-line(i1)
                  IF (.NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND. 
-     .               line_mem(i2).GT.line_mem(i1)) THEN
+     .               line(i2).GT.line(i1)) THEN
                     i0 = i1-1
                     i3 = i2
                  ENDIF
@@ -251,21 +252,21 @@
 * 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)
+     .               line(i3) - line(i0) ) THEN
+                    madj = (line(i3)-line(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
+                     line(i3) = line(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
+                  delta = line(i2)-line(i2-1)
+                  IF ( i2 .LT. npts .AND. .NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND.
+     .		      (line(i2-1) .GE. line(i2)))  THEN
                      misordered = .TRUE.
 	             GOTO 1000
                  ENDIF
diff --git a/fmt/src/tm_check_line.F b/fmt/src/tm_check_line.F
new file mode 100644
index 0000000..66d1f1c
--- /dev/null
+++ b/fmt/src/tm_check_line.F
@@ -0,0 +1,194 @@
+	SUBROUTINE TM_CHECK_LINE ( line, npts, reversed, vname, vlen, 
+     .      is_double, its_irregular, use_strict, regular, misordered)
+
+*
+*
+*  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. 
+*
+* Check coordinate data from a netCDF file
+*
+* Check for misordered or repeated data.
+* If repeated values, apply micro-adjusting, or report as a warning if the 
+* user requested /STRICT.
+
+* Check if axis is actually regularly spaced (though not flagged as "even")
+* Use the precision of the data  in the file.
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+
+* revision 0.0 - 6/17
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
+
+
+        include 'tmap_errors.parm'
+        include 'xio.cmn_text'
+        external xio_data
+
+* argument declarations
+
+	LOGICAL reversed, is_double, has_repeated, its_irregular, 
+     .       use_strict, regular, misordered
+	REAL line(*)
+	INTEGER npts, vlen
+	CHARACTER*(*) vname
+
+
+* local declarations
+	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS
+	REAL tmp8, micro_adj, epsilon_23, depsilon_46, epsilon, depsilon,
+     .       dfirst_delta, ddelta, delta, firs_coord, last_coord, first_delta
+	INTEGER i, istat
+	CHARACTER*12 TM_LEFINT
+
+	misordered = .FALSE.  ! valid until proven otherwise
+
+* (From Wikipedia on precision:)
+* Single precision, called "float" in the C language family, and "real" 
+* or "real*4" in Fortran. This is a binary format that occupies 32 bits (4 bytes) 
+* and its significand has a precision of 24 bits (about 7 decimal digits).
+* Double precision, called "double" in the C language family, and "double precision" 
+* or "real*8" in Fortran. This is a binary format that occupies 64 bits (8 bytes) 
+* and its significand has a precision of 53 bits (about 16 decimal digits).
+
+      epsilon_23 =  2.**(-23)
+      depsilon_46 =  2.**(-46) 
+
+* if the coordinates are decreasing-ordered then reverse them
+
+	IF (npts .GT. 1) THEN
+	   first_delta = line(2) - line(1)
+	   reversed = first_delta .LT. 0.0
+	ENDIF
+
+	IF (reversed) THEN
+	   DO i = 1, npts/2
+	      tmp8 = line(i)
+	      line(i) = line(npts+1-i)
+	      line(npts+1-i) = tmp8
+	   ENDDO
+	ENDIF
+
+* If repeated values, apply micro-adjusting. 
+* Or report as a warning if the user requested /STRICT.
+
+         misordered = .FALSE.
+         DO i = 2, npts
+           IF (line(i) .LT. line(i-1) ) 
+     .	      misordered = .TRUE.
+	   IF (use_strict .AND. (line(i) .LE. line(i-1)) )
+     .	      misordered = .TRUE.
+
+	   IF (misordered) EXIT ! from loop
+         ENDDO
+
+* 0726348357
+
+* out of order axis coordinates.
+* If reversed above, remove that designation to 
+* just hand the user the original data
+
+         IF (misordered) THEN
+            CALL TM_NOTE(
+     .          'Coordinates out of order or missing on axis '//
+     .           vname(:vlen)//' at subscript '//TM_LEFINT(i, istat), 
+     .           lunit_errors)
+            CALL TM_NOTE(
+     .          'A dummy axis of subscripts will be used', lunit_errors)
+     
+            IF (reversed) THEN
+               DO i = 1, npts/2
+	         tmp8 = line(i)
+	         line(i) = line(npts+1-i)
+	         line(npts+1-i) = tmp8
+               ENDDO
+            ENDIF
+
+            GOTO 1000
+         ENDIF
+
+         misordered = .FALSE.
+         micro_adj = 1E-7 *
+     .		(line(npts) - line(1))
+
+* ... are there repeated values?
+
+	 CALL TM_CHECK_COORDS (line, npts, is_double, use_strict, 
+     .                         has_repeated, misordered, micro_adj, 
+     .                         epsilon, depsilon)
+
+	 IF (misordered) GOTO 2000
+         IF ( has_repeated .AND. .NOT.misordered ) THEN
+            CALL TM_NOTE('Axis has repeated values -- micro-adjusting '//
+     .           vname(:vlen), lunit_errors)
+         ENDIF
+
+* Check if axis is actually regularly spaced (though not flagged as "even")
+
+        IF (its_irregular) GOTO 1000  ! If the file says its irreg, treat it at such
+
+* See if double-precision coordinates are regularly-spaced
+	epsilon = 0.
+	depsilon = 0.
+
+        IF (is_double) THEN
+           dfirst_delta = line(2) - line(1)
+           depsilon = depsilon_46 * 2.*(ABS(line(npts)) / first_delta )
+           depsilon = depsilon_46 * 2.*(ABS(line(1)) / first_delta )
+
+           DO i = 2, npts
+              ddelta = line(i) - line(i-1)
+              IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 1000
+           ENDDO
+
+* See if single-precision (or integer??) coordinates are regularly-spaced
+	ELSE
+           last_coord = line(npts)
+           firs_coord = line(1)
+           first_delta = line(2) - line(1)
+           epsilon = epsilon_23 * 2.*(ABS(line(npts)) / first_delta )
+           epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
+
+           DO  i = 3, npts
+              delta = line(i) - line(i-1)
+              IF (.NOT. TM_FPEQ_EPS(epsilon, first_delta, delta) ) GOTO 1000
+           ENDDO
+	ENDIF
+	regular = .TRUE.
+	RETURN
+
+ 1000	CONTINUE
+        regular = .FALSE.
+
+ 2000	RETURN
+	END
diff --git a/fmt/src/tm_check_line_bounds.F b/fmt/src/tm_check_line_bounds.F
new file mode 100644
index 0000000..3a86cf6
--- /dev/null
+++ b/fmt/src/tm_check_line_bounds.F
@@ -0,0 +1,69 @@
+	SUBROUTINE TM_CHECK_LINE_BOUNDS ( line, line_bnds, npts, iaxis, 
+     .      reversed, vname, vlen, is_double, regular, ok)
+
+
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
+c#include "gt_lib.parm"
+
+* argument declarations
+
+	LOGICAL TM_CHECK_BNDS, TM_CHECK_BNDS_CENTERED, 
+     .		reversed, is_double, its_irregular, regular, ok
+	REAL line(*), line_bnds(*)
+	INTEGER npts, vlen, iaxis, bad_bndsid
+	CHARACTER*(*) vname
+
+* Local declarations	
+	INTEGER i, irev
+	REAL tmp8
+
+* if the coordinates were reversed then the box bounds must be, too 
+        IF ( reversed  .AND.  npts .GT. 1) THEN
+	   irev = 2*npts
+           DO 550 i = 1, npts
+               tmp8 = line_bnds(i)
+	       line_bnds(i) = line_bnds(irev)
+	       line_bnds(irev) = tmp8
+	       irev = irev - 1
+ 550       CONTINUE
+        ENDIF
+
+* check to see that each data point is contained inside its box,
+* and if the bounds are contiguous, warning user if not. 7/27/2017
+
+        IF (.NOT. TM_CHECK_BNDS(line, line_bnds, npts, iaxis, is_double, vname) ) THEN  
+
+           ok = .FALSE.
+      
+        ELSE  ! Only check for centered bounds if the bounds are valid
+
+* For axes specified with BOUNDS, check whether coordinates are also 
+* centered in the boxes, and whether the size of the boxes are equal.
+* If there is one point, use upper and lower bound as given in the file 
+* to determine line_delta.
+
+           IF (TM_CHECK_BNDS_CENTERED(line, line_bnds, npts, iaxis, is_double)) THEN
+* It's actually regular - save it as such
+              IF (.NOT. line_regular(iaxis)) THEN
+                 line_regular(iaxis) = .TRUE.
+                 line_start  (iaxis) = line(1)
+                 IF (npts .GT. 1) THEN
+                    line_delta  (iaxis) = 
+     .                (line(npts) - line(1))/DBLE(npts-1)
+                 ELSE
+                    line_delta(iaxis) = line_bnds(2)-line_bnds(1)
+                 ENDIF
+              ENDIF
+           ELSE
+              line_regular(iaxis) = .FALSE.
+           ENDIF
+	   ok = .TRUE.
+	
+        ENDIF  ! valid bounds, also checked centered
+
+* If valid, will convert these bounds to edges back in the calling routine
+
+	RETURN
+	END
diff --git a/fmt/src/tm_irregax_mid.F b/fmt/src/tm_check_line_edges.F
similarity index 61%
copy from fmt/src/tm_irregax_mid.F
copy to fmt/src/tm_check_line_edges.F
index 98ac46e..2a0d163 100644
--- a/fmt/src/tm_irregax_mid.F
+++ b/fmt/src/tm_check_line_edges.F
@@ -1,4 +1,5 @@
-	SUBROUTINE TM_IRREGAX_MID( ipt1, npts )
+	SUBROUTINE TM_CHECK_LINE_EDGES ( line, line_edges, npts, 
+     .      iaxis, reversed, vname, vlen, is_double, regular, ok)
 
 *
 *
@@ -33,45 +34,49 @@
 *  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. 
-*
-*
-* Fill in the midpoint values as the default boundaries between grid
-* boxes
 
-* Programmer Steve Hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* Checks for edge coordinate data in a netCDF file
 
-* revision 0.0 - 2/93 - code lifted from cd_get_1_axis
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
 
-* argument definitions:
-*	ipt1	- subscript of first coordinate for axis in line_memory
-*	npt	- length of axis
+* revision 0.0 - 6/17
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
 
 * argument declarations
-	INTEGER	 ipt1, npts
 
-* internal variable declarations:
-        INTEGER i
+	LOGICAL reversed, is_double, its_irregular, regular, ok
+	REAL line(*), line_edges(*)
+	INTEGER npts, vlen, iaxis, bad_bndsid
+	CHARACTER*(*) vname
+
+* Local declarations	
+	LOGICAL TM_CHECK_BOX_LOC, TM_CHECK_BNDS_CENTERED
+	INTEGER i, irev, npp1
+	REAL tmp8
+
+* if the coordinates were reversed then the box edges must be, too
+	IF ( reversed .AND.  npts .GT. 1) THEN
+           npp1 = npts+1
+	   DO i = 1, npp1/2
+	      tmp8 = line_edges(i)
+	      line_edges(i) = line_edges(npp1+1-i)
+	      line_edges(npp1+1-i) = tmp8
+	   ENDDO
+	ENDIF
+
+*  Checks to make sure coordinates are enclosed by boxes on the axis
 
-* include files
-	include 'tmap_dims.parm'
-#include "gt_lib.parm"
-	include 'xio.cmn_text'
-	external xio_data
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
+        IF ( .NOT.TM_CHECK_BOX_LOC(line, line_edges, npts) ) THEN
+           ok = .FALSE.
+        ELSE 
 
-* compute midpoints lying between coordinates
-        DO 100 i = ipt1, ipt1+npts-2
- 100    line_mem(i+npts+1) = (line_mem(i)+line_mem(i+1)) / 2.0D0 
+* check to see that each data point is contained inside its box.
+* See if they're centered after all.
 
-* lower bound of first box
-        line_mem(ipt1+npts)   = line_mem(ipt1)
-     .                        - (line_mem(ipt1+1)-line_mem(ipt1))/2.D0
-* upper bound of last box
-        line_mem(ipt1+npts+npts) = line_mem(ipt1+npts-1)
-     .            + (line_mem(ipt1+npts-1)-line_mem(ipt1+npts-2))/2.D0
+           regular = TM_CHECK_BNDS_CENTERED(line, line_edges, npts, iaxis, is_double)
+	   ok = .TRUE.
+        ENDIF
 
-        RETURN
+	RETURN
 	END
diff --git a/fmt/src/tm_close_set_cond_deallo.F b/fmt/src/tm_close_set_cond_deallo.F
index 4426d8d..922f569 100644
--- a/fmt/src/tm_close_set_cond_deallo.F
+++ b/fmt/src/tm_close_set_cond_deallo.F
@@ -101,6 +101,7 @@
 
 	include 'tmap_errors.parm'	! error code parameter defs
 #include "tmap_dset.parm"
+#include "gt_lib.parm"
 	include 'tmap_dims.parm'
 	include 'xstep_files.cmn_text'
 	external xstep_files_data
@@ -113,7 +114,7 @@
 
 * internal variable declarations
         LOGICAL   its_cdf
-	INTEGER   NCF_DELETE_DSET, 
+	INTEGER   NCF_DELETE_DSET, STR_SAME,
      .            f_num, ivar, iparm, iaux, idim
 
 * initialize: do we have an open set?
@@ -125,6 +126,12 @@
      .     .OR.   ds_type(ds_num) .EQ. 'CDF'
      .     .OR.   ds_type(ds_num) .EQ. 'ECDF' 
 
+* free the coordinate memory for the time axis of an aggregation
+	IF (ds_type(ds_num) .EQ. 'FCT' .OR. STR_SAME(ds_type(ds_num), ' MC') .EQ. 0) THEN
+	   IF (ds_time_axis(ds_num).NE.int4_init .AND. ds_time_axis(ds_num).NE.unspecified_int4)
+     .         CALL FREE_LINE_DYNMEM (ds_time_axis(ds_num))
+        ENDIF
+
 * First clear variables associated only with data set number
 	ds_type(ds_num)			=	char_init04
 	ds_format(ds_num)		=	char_init04
diff --git a/fer/utl/gcf_set_normal_axis.F b/fmt/src/tm_convert_bounds_edges.F
similarity index 80%
copy from fer/utl/gcf_set_normal_axis.F
copy to fmt/src/tm_convert_bounds_edges.F
index 3a0ed70..62a8fec 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fmt/src/tm_convert_bounds_edges.F
@@ -1,4 +1,5 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+	SUBROUTINE TM_CONVERT_BOUNDS_EDGES (line_bounds, line_edges, npts)
+
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,23 +33,26 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* 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.
+* Change from 2*npts bounds to npts+1 edges
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
 
-* 
-* V720 3/16 *acm* 
+* revision 0.0 - 6/17
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+	
+* Argument declarations
+	REAL	line_bounds(*), line_edges(*)
+	INTEGER npts
 
-* calling argument declarations
-	INTEGER		grid, idim
+* Local declarations
+	INTEGER i
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+	DO i = 1, npts
+           line_edges(i) = line_bounds(2*(i-1)+1)
+	ENDDO
+	line_edges(npts+1) = line_bounds(2*npts)
 
 	RETURN
 	END
diff --git a/fmt/src/tm_copy_line.F b/fmt/src/tm_copy_line.F
index 380f403..28e56da 100644
--- a/fmt/src/tm_copy_line.F
+++ b/fmt/src/tm_copy_line.F
@@ -52,11 +52,14 @@
 * Parameters and commons
 
 	include 'tmap_dims.parm'
+        include 'tmap_errors.parm'
 #include "tmap_dset.parm"
 #include "gt_lib.parm"
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 
+	INTEGER status
+
 *
 	line_name(dest)      = line_name(source)
 	line_name_orig(dest) = line_name_orig(source)
@@ -74,14 +77,18 @@
 	line_cal_name(dest)  = line_cal_name(source) 
 	line_dim_only(dest)  = line_dim_only(source)
 
-	IF ( dest.LE.max_lines .AND. source.LE.max_lines) THEN
+	IF ( dest.LE.max_lines .AND. source.LE.max_lines 
+     .       .AND. .NOT.line_regular(source) ) THEN
 * non-dynamic lines, only
-	   line_subsc1(dest)    = line_subsc1(source)
+	   CALL GET_LINE_DYNMEM (line_dim(source), dest, status)
+           IF (status .NE. merr_ok) GOTO 5000
+	   CALL COPY_LINE_COORDS (linemem(source)%ptr, linemem(dest)%ptr, line_dim(source))
+	   CALL COPY_LINE_COORDS (lineedg(source)%ptr, lineedg(dest)%ptr, line_dim(source)+1)
 	ELSEIF ( dest.GT.max_lines .AND. source.GT.max_lines) THEN! ELSEIF 1/96
 * dynamic lines, only
 	   line_class (dest)	= line_class (source)
 	   line_parent(dest)	= line_parent(source)
 	ENDIF
 
-	RETURN
+ 5000	RETURN
 	END
diff --git a/fmt/src/tm_deallo_dyn_line_sub.F b/fmt/src/tm_deallo_dyn_line_sub.F
index a278576..a1bc999 100644
--- a/fmt/src/tm_deallo_dyn_line_sub.F
+++ b/fmt/src/tm_deallo_dyn_line_sub.F
@@ -90,7 +90,7 @@
 	   next_used_line   = line_flink(line)
 	   line_flink(line) = line_free_ptr  
 	   line_free_ptr    = line
-	   
+
 * ... unhook from used list
 	   line_flink(line_blink(line)) = next_used_line
 	   line_blink(next_used_line)   = line_blink(line)
@@ -101,7 +101,8 @@
 	ENDIF
 
 * Recover the coordinate storage used for an irregularly-spaced line.
-        IF ( .NOT. line_regular(line) ) CALL PACK_LINE_STORAGE (line)
+        IF ( .NOT. line_regular(line) ) CALL FREE_LINE_DYNMEM (line)
+	line_regular(line) = .TRUE.
 
 * return flag to indicate if the quasi-recursive descent ends here
 * ... zero or index of parent axis to deallocate
diff --git a/fmt/src/tm_garb_col_lines.F b/fmt/src/tm_garb_col_lines.F
deleted file mode 100644
index 91d065d..0000000
--- a/fmt/src/tm_garb_col_lines.F
+++ /dev/null
@@ -1,142 +0,0 @@
-	SUBROUTINE TM_GARB_COL_LINES ( first, last )
-
-*
-*
-*  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. 
-*
-*
-* garbage collect wasted space in newly defined lines (axes)
-
-* Programmer Steve Hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* revision 0.0 - 2/92
-*
-* IBM PORT 14apr94 *kob* : Port to IBM revealed a transfer controll problem at 
-*			   around label 200.  A "goto" statment was passing
-*			   control to a continue statment.
-* V500: 7/99 *sh* - bug fix: need consistent use of char_init16 on line_name
-*		    bug fix: invalid branch at 4/94 fix -- was hidden all
-*			     this time because line_name check was invalid
-*			     so code was never executed
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
-
-* argument definitions:
-*       first   - highest number line to check
-*       last    - lowest number line to check
-* note: lines are allocated from high to low
-
-* include files
-
-	include 'tmap_errors.parm'
-	include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
-	include 'xtm_grid.cmn_text'
-	
-* argument declarations
-	INTEGER	 first, last
-
-* local variable declarations:
-      INTEGER iaxis, hiaxis, igrid, i, idim, next_mem, freed_mem
-
-* there is no way that grids can be using unnamed axes
-* delete 'em incrementing the grid axis pointers and compacting line memory
-
-* initialize axis loop
-!  like: DO 400 iaxis = first, last   but hiaxis keeps shifting down
-      iaxis = first
-      hiaxis = last
-      IF (first .GT. last) RETURN
-
-* is this a hole ?
- 10     IF ( line_name(iaxis) .NE. char_init16 ) GOTO 400
-
-* modify axis pointer saved in the grids
-           DO 110 igrid = 1, max_grids
-              IF ( grid_name(igrid) .EQ. char_init ) GOTO 110
-              DO 100 idim = 1, nferdims
-                 IF ( grid_line(idim, igrid) .EQ. iaxis )
-     .         write (6,*) 'grid defns are garbled!: TM_GRID_GARBAGE' ! diag
-                 IF ( grid_line(idim, igrid) .GT. iaxis
-     .          .AND. grid_line(idim, igrid) .LE. hiaxis )
-     .                grid_line(idim,igrid) = grid_line(idim,igrid) - 1
- 100          CONTINUE
- 110       CONTINUE
-
-* is there line memory to free ?
-* this next goto was 200, but the IBM compiler wouldn't accept a 
-* transfer of control to a continue statment.  *kob* 14apr94
-* 7/99 *sh* for regular lines skip over line_subsc and line_mem code
-           IF ( line_regular(iaxis) ) GOTO 295	! was 205 pre 7/00 (bug)
-
-* look ahead to the next line with uneven point spacing 
-           DO 200 i = iaxis+1, hiaxis
-              IF ( .NOT.line_regular(i) ) THEN
-                 next_mem = line_subsc1(i)
-                 GOTO 210
-              ENDIF
- 200       CONTINUE
- 205       next_mem  = next_line_mem_pos
- 210       freed_mem = next_mem - line_subsc1(iaxis)
-
-* shift this much line memory to fill the hole
-           DO 250 i = next_mem, next_line_mem_pos
- 250       line_mem(i-freed_mem) = line_mem(i)
-
-* update line memory pointers
-           DO 280 i = iaxis+1, hiaxis
-              IF ( .NOT.line_regular(i) ) THEN
-                 line_subsc1(i) = line_subsc1(i) - freed_mem
-              ENDIF
- 280       CONTINUE
-           next_line_mem_pos = next_line_mem_pos - freed_mem
-           
-* shift all the definitions back to fill the hole
- 295	   DO 300 i = iaxis+1, hiaxis
- 300       CALL TM_COPY_LINE( i, i-1 )
-
-* initialize new hole at end
-           line_name(hiaxis) = char_init16
-           line_subsc1(hiaxis) = unspecified_int4
-           hiaxis = hiaxis - 1
-           iaxis = iaxis - 1   ! nullify decrement below
-
-! like: 400    CONTINUE
- 400    iaxis = iaxis + 1
-        IF ( iaxis .LE. hiaxis ) GOTO 10
-
-* successful completion
-        RETURN
-
-	END
diff --git a/fmt/src/tm_irregax_mid.F b/fmt/src/tm_irregax_mid.F
index 98ac46e..c5de2cc 100644
--- a/fmt/src/tm_irregax_mid.F
+++ b/fmt/src/tm_irregax_mid.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_IRREGAX_MID( ipt1, npts )
+	SUBROUTINE TM_IRREGAX_MID( line, line_edges, npts )
 
 *
 *
@@ -44,12 +44,17 @@
 * revision 0.0 - 2/93 - code lifted from cd_get_1_axis
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
 
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage 
+*                The argument is the coordinates for just this line
+
 * argument definitions:
-*	ipt1	- subscript of first coordinate for axis in line_memory
-*	npt	- length of axis
+*	line	 - coordinates of the line in dynamic memory
+*	line_edges - coordinates of the bounds in dynamic memory
+*	npt	 - length of axis
 
 * argument declarations
-	INTEGER	 ipt1, npts
+	REAL	line(*), line_edges(*)
+	INTEGER	npts
 
 * internal variable declarations:
         INTEGER i
@@ -62,16 +67,25 @@
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 
+* nominal treatment for one-point axis.
+
+        IF (npts .EQ. 1) THEN
+           i = 1
+	   line_edges(i) = line(i) - 1. 
+           line_edges(i+1) = line(i) + 1. 
+	   RETURN
+	ENDIF
+
 * compute midpoints lying between coordinates
-        DO 100 i = ipt1, ipt1+npts-2
- 100    line_mem(i+npts+1) = (line_mem(i)+line_mem(i+1)) / 2.0D0 
+        DO i = 1, npts-1
+           line_edges(i+1) = (line(i)+line(i+1)) / 2.0D0 
+	ENDDO
 
 * lower bound of first box
-        line_mem(ipt1+npts)   = line_mem(ipt1)
-     .                        - (line_mem(ipt1+1)-line_mem(ipt1))/2.D0
+        line_edges(1)   = line(1) - (line(2)-line(1))/2.D0
+
 * upper bound of last box
-        line_mem(ipt1+npts+npts) = line_mem(ipt1+npts-1)
-     .            + (line_mem(ipt1+npts-1)-line_mem(ipt1+npts-2))/2.D0
+        line_edges(npts+1) = line(npts) + (line(npts)-line(npts-1))/2.D0
 
         RETURN
 	END
diff --git a/fmt/src/tm_line_match.F b/fmt/src/tm_line_match.F
index 7d67399..f088544 100644
--- a/fmt/src/tm_line_match.F
+++ b/fmt/src/tm_line_match.F
@@ -65,6 +65,7 @@
 * Local definitions
 	INTEGER*4	j, lc1, lc2
 	LOGICAL		TM_FPEQ
+	REAL		GET_LINE_COORD, v1, v2
 
 * Same regularity/irregularity?
 	IF (line_regular(line1) .NEQV. line_regular(line2)) GOTO 110
@@ -111,16 +112,21 @@
 	ELSE
 	  lc1 = line_subsc1(line1)
 	  lc2 = line_subsc1(line2)
-	  DO 100 j = 0,2*line_dim(line1)
-! added ".NOT." 5/93 *sh*
-#ifdef double_p
-	    IF (.NOT.TM_FPEQ( (line_mem(lc1+j)),
-     .			      (line_mem(lc2+j)) )) GOTO 110
-#else
-	    IF (.NOT.TM_FPEQ( SNGL(line_mem(lc1+j)),
-     .			      SNGL(line_mem(lc2+j)) )) GOTO 110
-#endif
+	  DO 100 j = 1,line_dim(line1)
+	    v1 = GET_LINE_COORD (linemem(line1)%ptr, j)
+	    v2 = GET_LINE_COORD (linemem(line2)%ptr, j)
+	    IF (.NOT.TM_FPEQ(v1, v2)) GOTO 110
+
+	    v1 = GET_LINE_COORD (lineedg(line1)%ptr, j)
+	    v2 = GET_LINE_COORD (lineedg(line2)%ptr, j)
+	    IF (.NOT.TM_FPEQ(v1, v2)) GOTO 110
   100	  CONTINUE
+
+* Upper box edges
+	    v1 = GET_LINE_COORD (lineedg(line1)%ptr, line_dim(line1)+1)
+	    v2 = GET_LINE_COORD (lineedg(line2)%ptr, line_dim(line1)+1)
+	    IF (.NOT.TM_FPEQ(v1, v2)) GOTO 110
+
 	ENDIF
 
 * Yes, lines match
diff --git a/fer/utl/gcf_set_normal_axis.F b/fmt/src/tm_lonw2e_line.F
similarity index 74%
copy from fer/utl/gcf_set_normal_axis.F
copy to fmt/src/tm_lonw2e_line.F
index 3a0ed70..4dec967 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fmt/src/tm_lonw2e_line.F
@@ -1,5 +1,7 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+	SUBROUTINE TM_LONW2E_LINE ( line, npts )
 
+*
+*
 *  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,22 +35,28 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* 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.
+* convert a coordinate line which is west positive, discontinuous
+* at the dateline (as in EPIC netCDF) to one which has east positive and is
+* discontinuous at Greenwhich
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
-* 
-* V720 3/16 *acm* 
+* revision 0.0 - 3/93
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage 
+*                Convert an entire line
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+* argument declarations
+      REAL*8 line(*)
+      INTEGER npts
 
-* calling argument declarations
-	INTEGER		grid, idim
+* local declarations
+      REAL*8 TM_LONW2LONE
+      INTEGER i
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+      DO i = 1, npts
+         line(i) = TM_LONW2LONE( line(i) ) 
+      ENDDO
 
-	RETURN
-	END
+      RETURN
+      END
diff --git a/fmt/src/tm_read_gridfile.F b/fmt/src/tm_read_gridfile.F
index 8454a1a..8b51aa4 100644
--- a/fmt/src/tm_read_gridfile.F
+++ b/fmt/src/tm_read_gridfile.F
@@ -92,565 +92,13 @@
 	INTEGER*4	status
 
         include 'tmap_errors.parm'
-	include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xio.cmn_text'
-	external xio_data
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'xunits.cmn_text'
-	external xunits_data
-        include 'xsys_names.cmn_text'
-        external xsys_names_data
 
+c GET RID OF THIS ROUTINE?  Otherwise work out dynamic line allocation.
 
-* local definitions
-* *kob* explicit definitions not allowed on decl line in linux...
-*       moved it to parameter line 10/96
-	CHARACTER*6	grid_define, line_define, coords_define,
-     .			time_define, comment_char
-        CHARACTER       def_ext*4
-	CHARACTER*13	TM_STRING
-	CHARACTER*25	buff(11), newline
-	CHARACTER*80	def_error
-        CHARACTER*128   TM_INQ_PATH, gfile_path
-	CHARACTER*132	TM_CMPRSS, input_buf, cmprss_buf
-	INTEGER*4	lunit, i, j, ipt1, ipte, npts,
-     .			cline, tline, temp
-	PARAMETER	(temp = 0)		!kob 10/96
-	INTEGER*4	p_gname, p_gline(4), p_grot, p_lname, p_llen,
-     .			p_ldirect, ngrid, nline, istat, p_goutp(4),
-     .			p_lunits, p_lstart, p_ldelta, p_cform, p_lstore,
-     .			p_modulo, p_lbox0, p_t0, inner, outer, newgrid,
-     .			g_used, l_used, orig_line_mem_pos, dim
-	LOGICAL		reg_coords, irreg_coords
-	REAL*8		rdummy
-	INTEGER*4	TM_UNIT_ID, STR_CASE_BLIND_COMPARE,
-     .			TM_FIND_GRID_SLOT, TM_FIND_LINE_SLOT
-	LOGICAL		opened
-	LOGICAL		TM_HAS_STRING, TM_GRID_MATCH, TM_LINE_MATCH,
-     .			TM_CHECK_BOX_LOC
-
-	DATA		p_gline/4, 6, 8, 10/
-	DATA		p_goutp/5, 7, 9, 11/
-	DATA            def_ext/'.grd'/
-
-	PARAMETER	(grid_define	= 'GRID  ',
-     .			 line_define	= 'LINE  ',
-     .			 coords_define	= 'COORDS',
-     .			 time_define	= 'TIME  ',
-     .			 comment_char	= '*     ')
-
-	PARAMETER	(p_gname	= 2,
-     .			 p_grot		= 3,
-     .			 p_lname	= 2,
-     .			 p_llen		= 3,
-     .			 p_ldirect	= 4,
-     .			 p_lunits	= 5,
-     .			 p_lstore	= 6,
-     .			 p_lstart	= 7,
-     .			 p_ldelta	= 8,
-     .			 p_modulo	= 9,
-     .			 p_cform	= 3,
-     .			 p_lbox0	= 4,
-     .			 p_t0		= 3)
-
-* Store original start of free line memory
-	orig_line_mem_pos = next_line_mem_pos
-
-* Find full file specification
-        opened = .FALSE.       ! 1/93
-        gfile_path = TM_INQ_PATH( gfile_name, tmap_grids, def_ext,
-     .                             .TRUE., status )
-        IF ( status .NE. merr_ok ) GOTO 9999
-
-* Check to see if this gridfile has already been read
-  	DO 100 i = 1, maxgridfiles
-	  istat = STR_CASE_BLIND_COMPARE(grid_filename(i),gfile_path)
-	  IF (istat .EQ. str_match) THEN
-	    status = merr_no_action
-	    RETURN
-	  ENDIF
-  100	CONTINUE
-
-* Find locations to store info from this gridfile
-	DO 110 i = maxgridfiles,1,-1
-	  IF (grid_filename(i) .NE. char_init128) THEN
-	    IF (i .EQ. maxgridfiles) GOTO 9050     !Too many grid files to store
-	    newgrid = i + 1
-	    GOTO 120
-	  ENDIF
-  110	CONTINUE
-	newgrid = 1
-  120	grid_filename(newgrid) = gfile_path
-
-* How many grid spaces used 
-	status = TM_FIND_GRID_SLOT ( ngrid )
-	IF (status .NE. merr_ok) GOTO 9200
-	ngrid = ngrid - 1
-	g_used = ngrid
-
-* How many line spaces used 
-	status = TM_FIND_LINE_SLOT ( nline )
-	IF (status .NE. merr_ok) GOTO 9500
-	nline = nline - 1
-	l_used = nline
-
-* get a free logical unit #
-	CALL LIB_GET_LUN (lunit)
-
-* open grid filename
-	OPEN 	(UNIT = lunit,
-     .		 FILE = grid_filename(newgrid),
-#ifdef READONLY_ALLOWED
-     .		 READONLY,
-#endif
-     .		 STATUS = 'OLD',
-     .		 ERR = 9010)
-        opened = .TRUE.
-
-* read in record from grid file
-  170	READ	(lunit, '(A)',END=330,ERR=9010) input_buf
-* remove extraneous spaces and tabs
-	cmprss_buf = TM_CMPRSS(input_buf)
-* blank buff string
-	DO 180 i =1,11
-	  buff(i) = ' '
-  180	CONTINUE
-
-********************************************************************************
-*                                 GRID DEFINITION                              *
-********************************************************************************
-* Check if grid definition, and if so seperate necessary elements
-	IF (cmprss_buf(1:4) .EQ. grid_define) THEN
-	  CALL TM_BREAK_STR(cmprss_buf, buff, 11)
-
-* store info in common - temporary location 0
-	  READ  (buff(p_grot), *, ERR=9600) grid_rotation(temp)
-
-* check to see if line defined - if so: place in common - if not: error
-	  DO 210 i = 1,4
-	    newline = buff(p_gline(i))
-	    IF (STR_CASE_BLIND_COMPARE(newline(:7),'UNKNOWN') .EQ.
-     .		  str_match) THEN
-	      grid_line(i,temp) = mpsunkn
-	      GOTO 200
-	    ENDIF
-	    IF (STR_CASE_BLIND_COMPARE(newline(:6),'NORMAL')  .EQ.
-     .		  str_match) THEN
-	      grid_line(i,temp) = mpsnorm
-	      GOTO 200
-	    ENDIF
-* ... check among static axes to see if it already exists
-	    DO 190 j = 1, nline
-	      istat = STR_CASE_BLIND_COMPARE ( line_name(j), newline )
-	      IF (istat .EQ. str_match) THEN
-	        grid_line(i,temp) = j
-		GOTO 200
-	      ENDIF
-  190	    CONTINUE
-* Check among dynamic lines  to see if it already exists
-	    j = 0		! to get start of linked list
- 195	    CALL TM_NEXT_DYN_LINE( j, *9300)   ! 9300 if doesn't exist
-	      istat = STR_CASE_BLIND_COMPARE( line_name(j), newline )
-	      IF (istat .EQ. str_match) THEN
-	        grid_line(i,temp) = j
-		GOTO 200
-	      ENDIF
-	    GOTO 195
-
-*  Inner or outer product?
-  200	    outer = STR_CASE_BLIND_COMPARE('OUTER',buff(p_goutp(i)))
-	    inner = STR_CASE_BLIND_COMPARE('INNER',buff(p_goutp(i)))
-	    IF (inner .EQ. str_match) THEN
-	      grid_out_prod(i,temp) = .FALSE.
-	    ELSE IF (outer .EQ. str_match) THEN
-	      grid_out_prod(i,temp) = .TRUE.
-	    ELSE
-	      GOTO 9610
-	    ENDIF
-  210	  CONTINUE
-
-* Check among static grids for unique grid name
-	  DO 220 i = 1, ngrid
-	    istat = STR_CASE_BLIND_COMPARE(grid_name(i),buff(p_gname))
-	    IF (istat .EQ. str_match) THEN
-	      IF (TM_GRID_MATCH(i,temp)) THEN
-	        GOTO 170		! Already defined - no need to re-store
-	      ELSE
-	        GOTO 9100		! Whoops - same name - different def.
-	      ENDIF
-	    ENDIF
-  220	  CONTINUE
-
-* Check among dynamic grids for unique grid name
-	i = 0		! to get start of linked list
- 230	CALL TM_NEXT_DYN_GRID( i, *235)
-	    istat = STR_CASE_BLIND_COMPARE(grid_name(i),buff(p_gname))
-	    IF (istat .EQ. str_match) THEN
-	      IF (TM_GRID_MATCH(i,temp)) THEN
-	        GOTO 170		! Already defined - no need to re-store
-	      ELSE
-	        GOTO 9100		! Whoops - same name - different def.
-	      ENDIF
-	    ENDIF
-	GOTO 230
-
-* Name is unique .. Next location to store info; if too many grids - give error
- 235	status = TM_FIND_GRID_SLOT ( ngrid )
-	  IF (status .NE. merr_ok) GOTO 9200
-
-* Seems ok - transfer to permanent spot
-	  CALL TM_COPY_GRID_W_LINE_USE ( temp, ngrid )
-* Store grid name as flag of completed grid definition
-	  grid_name(ngrid) = buff(p_gname)
-
-********************************************************************************
-*                                 LINE DEFINITION                              *
-********************************************************************************
-* Check if line definition, and if so seperate necessary elements
-	ELSE IF (cmprss_buf(1:4) .EQ. line_define) THEN
-	  CALL TM_BREAK_STR(cmprss_buf, buff, 9)
-
-* store info in common - temporary location 0
-	  READ  (buff(p_llen), *, ERR=9700) line_dim(temp)
-	  line_direction(temp) = buff(p_ldirect)
-	  line_units(temp) = buff(p_lunits)
-	  line_unit_code(temp) = TM_UNIT_ID(buff(p_lunits))
-	  line_subsc1(temp) = unspecified_int4  !coordinates given later?
-	  reg_coords = TM_HAS_STRING( buff(p_lstore), 'START')
-	  irreg_coords = TM_HAS_STRING( buff(p_lstore), 'GIVEN')
-	  line_modulo(temp) = TM_HAS_STRING( buff(p_modulo), 'MODULO')
-	  line_modulo_len(temp) = 0.0D0
-	  line_t0(temp) = char_init20
-	  line_shift_origin(temp) = .FALSE.
-	  line_tunit(temp) = real4_init
-	  IF (reg_coords) THEN
-	    IF (line_direction(temp) .EQ. 'WE') dim = x_dim
-	    IF (line_direction(temp) .EQ. 'SN') dim = y_dim
-	    IF (line_direction(temp) .EQ. 'UD') dim = z_dim
-	    IF (line_direction(temp) .EQ. 'TI') dim = t_dim
-	    CALL TM_TRANSLATE_AXIS(buff(p_lstart),dim,line_start(temp),
-     .	                           status)
-	    IF (status .NE. merr_ok) GOTO 9950		!error reported already
-	    READ  (buff(p_ldelta), *, ERR=9720) line_delta(temp)
-	    IF (line_delta(temp) .LE. 0.0D0) GOTO 9730
-	    line_regular(temp) = .TRUE.
-	  ELSE
-	    line_delta(temp) = unspecified_val8
-	    line_regular(temp) = .FALSE.
-	  ENDIF
-
-* Check for unknown units or orientation
-	  IF (line_unit_code(temp) .EQ. 0) THEN
-	     istat = STR_CASE_BLIND_COMPARE(line_units(temp),'none')
-	     IF (istat .EQ. str_match) THEN
-                line_units(temp) = ' '
-             ELSE
-	        input_buf = ' '
-                WRITE (input_buf, *) 'cannot convert axis units: ',
-     .				  line_units(temp)
-	        CALL TM_NOTE( input_buf, lunit_errors)
-             ENDIF
-          ENDIF
-	  DO 240 i = 1, max_axis_orients
-	    IF (line_direction (temp) .EQ. axis_orients( i ) ) GOTO 250
-  240	  CONTINUE
-	  input_buf = ' '
-	  WRITE (input_buf, *) 'UNKNOWN LINE ORIENTATION : ',
-     .	                    line_direction(temp),' on ',buff(p_lname)
-	  CALL TM_NOTE( input_buf, lunit_errors)
-
-* If line is irregular - store it now and check it later
-  250	  IF (reg_coords) THEN
-* Check among static lines for unique line name
-	    DO 260 i  = 1, nline
-	      istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
-	      IF (istat .EQ. str_match) THEN
-* Check for unique definition
-	        IF (TM_LINE_MATCH(i,temp)) THEN
-	          GOTO 170		! Already defined - no need to re-store
-	        ELSE
-	          GOTO 9400		! Whoops - same name - different def.
-	        ENDIF
-	      ENDIF
-  260	    CONTINUE
-* Check among dynamic lines for unique line name
-	    i = 0		! to get start of linked list
- 265	    CALL TM_NEXT_DYN_LINE( i, *266)
-	      istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
-	      IF (istat .EQ. str_match) THEN
-* Check for unique definition
-	        IF (TM_LINE_MATCH(i,temp)) THEN
-	          GOTO 170		! Already defined - no need to re-store
-	        ELSE
-	          GOTO 9400		! Whoops - same name - different def.
-	        ENDIF
-	      ENDIF
-	    GOTO 265
-	  ENDIF
-
-* Name is unique .. Next location to store info; if too many lines - give error
- 266	  status = TM_FIND_LINE_SLOT ( nline )
-	  IF (status .NE. merr_ok) GOTO 9500
-
-* Seems ok - transfer to permanent spot
-	  CALL TM_COPY_LINE ( temp, nline )
-* Store line name as a flag of completed line definition
-	  line_name(nline) = buff(p_lname)
-
-********************************************************************************
-*                                COORD DEFINITION                              *
-********************************************************************************
-* Check if coord definition, and if so seperate necessary elements
-	ELSE IF (cmprss_buf(1:6) .EQ. coords_define) THEN
-	  CALL TM_BREAK_STR(cmprss_buf, buff, 4)
-
-* Locate the line this defines - already defined must be dupl. name or error
-	  DO 270 i = l_used+1, nline
-	    IF (line_delta(i) .EQ. unspecified_val8) THEN
-	      istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
-	      IF (istat .EQ. str_match) THEN
-* Make sure it hasn't been already defined
-	        IF (line_subsc1(i) .EQ. unspecified_int4) THEN
-	          cline = i
-	          GOTO 280
-	        ENDIF
-	      ENDIF
-	    ENDIF
-  270	  CONTINUE
-	  GOTO 9310 !No match found - error
-
-* Allocate some storage for the coordinates
-  280	  line_subsc1(cline) = next_line_mem_pos
-	    IF ((line_subsc1(cline)+2*line_dim(cline)) .GT.
-     .	        maxlinestore) GOTO 9800
-* Store initial box lower bound (start of axis)
-	  ipt1 = line_subsc1(cline)
-	  npts = line_dim(cline)
-	  ipte = ipt1 + npts-1
-	  READ (buff(p_lbox0), *, ERR=9740) line_mem(ipte+1)
-
-* Read line coords and box sizes from file
-	  READ  (lunit, buff(p_cform),ERR=9750)
-     .	   (line_mem(i),line_mem(i+npts+1),i=ipt1,ipte)
-
-* Check for invalid ordering of data or box sizes
-	  DO 290 i=ipt1+1,ipte
-	    IF (line_mem(i) .LE. line_mem(i-1)) GOTO 9760
-  290	  CONTINUE
-	  DO 300 i=ipt1,ipte
-	    IF (line_mem(i+npts+1) .LT. 0.0D0 ) GOTO 9770
-  300	  CONTINUE
-
-* Change box sizes to box locations
-	  DO 310 i=ipt1,ipte
-	    line_mem(i+npts+1) = line_mem(i+npts) + line_mem(i+npts+1)
-  310	  CONTINUE
-
-* Check to see that each data point is contained inside it's box
-	  IF (.NOT. TM_CHECK_BOX_LOC(cline)) GOTO 9780
-
-* Check for unique name
-	  DO 320 i  = 1, nline
-	    IF (i .EQ. cline) GOTO 320
-	    istat = STR_CASE_BLIND_COMPARE(line_name(i),line_name(cline))
-	    IF (istat .EQ. str_match) THEN
-* Check for unique definition
-	      IF (TM_LINE_MATCH(i,cline)) THEN
-	        line_name(cline) = ' '	! Already defined - no need to re-store
-	        GOTO 170
-	      ELSE
-	        GOTO 9400		! Whoops - same name - different def.
-	      ENDIF
-	    ENDIF
-  320	  CONTINUE
-
-* Store next line mem position - good line definition
-	  next_line_mem_pos = next_line_mem_pos + 2*line_dim(cline) + 1
-
-********************************************************************************
-*                             TIME LINE DEFINITION                             *
-********************************************************************************
-* Check if time line definition, and if so seperate necessary elements
-	ELSE IF (cmprss_buf(1:4) .EQ. time_define) THEN
-	  CALL TM_BREAK_STR(cmprss_buf, buff, 4)
-
-* Locate the line this defines - already defined must be dupl. name or error
-	  DO 370 i = l_used+1, nline
-	    IF (line_direction(i) .EQ. 'TI') THEN
-	      istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
-	      IF (istat .EQ. str_match) THEN
-* Make sure it hasn't been already defined
-	        IF (line_t0(i) .EQ. char_init20) THEN
-	          tline = i
-	          GOTO 380
-	        ENDIF
-	      ENDIF
-	    ENDIF
-  370	  CONTINUE
-	  GOTO 9320 !No match found - error
-
-* Found available slot - let's store values
-  380	  CALL TM_TRANSLATE_AXIS(buff(p_t0),t_dim,rdummy,status)
-	  IF (status .NE. merr_ok) GOTO 9910
-	  line_t0(tline) = buff(p_t0)
-          line_shift_origin(tline) = .FALSE.
-	  line_tunit(tline) = un_convert(line_unit_code(tline))
-
-********************************************************************************
-*                                 COMMENT LINE                                 *
-********************************************************************************
-	ELSE IF (cmprss_buf(1:1) .EQ. ' ' ) THEN   ! allow blank lines 6/92
-           GOTO 170            
-	ELSE IF (cmprss_buf(1:1) .NE. comment_char) THEN
-	  input_buf = ' '
-	  WRITE (input_buf,*) 'Unrecognized line in gridfile',
-     .	                   grid_filename(newgrid)
-	  CALL TM_NOTE( input_buf, lunit_errors)
-	  CALL TM_NOTE( cmprss_buf(1:79), lunit_errors)
-	ENDIF
-	GOTO 170
-
-********************************************************************************
-*                                FINAL CLEAN-UP                                *
-********************************************************************************
-  330	DO 340 i = 1, nline
-	  IF  ( line_name(i) .NE. char_init16 ) THEN
-* Are there lines left without coordinates?
-	    IF (line_subsc1(i) .EQ. unspecified_int4 .AND.
-     .	        line_delta(i) .EQ. unspecified_val8 ) GOTO 9900
-* Are there time axis left without time info?
-! disabled T0 check 9/95
-!	    IF (line_direction(i) .EQ. 'TI' .AND.
-!     .	        line_t0(i) .EQ. char_init20 ) GOTO 9920
-	  ENDIF
-  340	CONTINUE
-	GOTO 9990
-
-* error messages
-! 9000	CALL TM_ERRMSG (merr_erreq, status, 'TM_READ_GRIDFILE',
-!     .			no_descfile, no_stepfile,
-!     .			'FILE='//grid_filename(newgrid),
-!     .			no_errstring, *9999)
-
- 9010	CALL TM_ERRMSG (merr_erreq, status, 'TM_READ_GRIDFILE',
+	CALL TM_ERRMSG (merr_notsupport, status, 'TM_READ_GRIDFILE',
      .			no_descfile, no_stepfile,
-     .			'FILE='//grid_filename(newgrid),
-     .			no_errstring, *9950)
-
+     .			'Gridfiles no longer supported', no_errstring, *5000)
 
- 9050	CALL TM_ERRMSG ( merr_grfillim, status, 'TM_READ_GRIDFILE',
-     .	                 no_descfile, no_stepfile,
-     .	                 'MAX='//TM_STRING(DBLE(maxgridfiles)),
-     .	                 no_errstring, *9999)
-
- 9100	CALL TM_ERRMSG (merr_gridpredef, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			'GRIDNAME='//buff(p_gname), no_errstring,
-     .			*9950)
-
- 9200	CALL TM_ERRMSG (merr_gridlim, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			'MAX='//TM_STRING(DBLE(max_grids)), no_errstring,
-     .			*9950)
-
- 9300	def_error = 'LINENAME='//newline//' GRIDNAME='//buff(p_gname)
-	GOTO 9399
- 9310	def_error = 'LINENAME='//buff(p_lname)//' in COORD definition'
-	GOTO 9399
- 9320	def_error = 'LINENAME='//buff(p_lname)//' in TIME definition'
- 9399	CALL TM_ERRMSG (merr_lineundef, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			def_error, no_errstring, *9950)
-
- 9400	CALL TM_ERRMSG (merr_linepredef, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			'LINENAME='//buff(p_lname), no_errstring,
-     .			*9950)
-
- 9500	CALL TM_ERRMSG (merr_linelim, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			'MAX='//TM_STRING(DBLE(max_lines)), no_errstring,
-     .			*9950)
-
- 9600	def_error = 'Read error in grid rotation field.  '//
-     .	            'GRIDNAME='//buff(p_gname)
-	GOTO 9699
- 9610	def_error = 'Inner/outer product flag must be INNER or OUTER'//
-     .	            'GRIDNAME='//buff(p_gname)
- 9699	CALL TM_ERRMSG (merr_badgriddef, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			def_error, no_errstring, *9950)
-
- 9700	def_error = 'Read error in gridline length field.  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
-! 9710	def_error = 'Read error in gridline start field.  '//
-!     .	            'LINENAME='//buff(p_lname)
-!	GOTO 9799
- 9720	def_error = 'Read error in gridline delta field.  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
- 9730	def_error = 'Gridline delta is negative or zero.  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
- 9740	def_error = 'Read error in initial box lower bound field.  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
- 9750	def_error = 'Read error in line coord. or box size field.  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
- 9760	def_error = 'Coord at (i) less than coord at (i-1).  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
- 9770	def_error = 'Box size specified less than zero.  '//
-     .	            'LINENAME='//buff(p_lname)
-	GOTO 9799
- 9780	def_error = 'A coordinate given is not enclosed by box.  '//
-     .	            'LINENAME='//buff(p_lname)
- 9799	CALL TM_ERRMSG (merr_badlinedef, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			def_error, no_errstring, *9950)
-
- 9800	CALL TM_ERRMSG (merr_linstorlim, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			'MAX='//TM_STRING(DBLE(maxlinestore)),
-     .			no_errstring, *9950)
-
- 9900	CALL TM_ERRMSG (merr_nocoordlin, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			'LINENAME='//line_name(i), no_errstring,
-     .			*9950)
-
- 9910   def_error = 'Read error for line_t0 - '//buff(p_t0)
-!	GOTO 9949
-! 9920	def_error = 'No t0 info for line '//line_name(i)   ! disabled 9/95
- 9949	CALL TM_ERRMSG (merr_badtimedef, status, 'TM_READ_GRIDFILE',
-     .			no_descfile, no_stepfile,
-     .			def_error, no_errstring, *9950)
-
-* Reset memory locations if error occurs
- 9950	grid_filename(newgrid) = char_init
-	IF (ngrid .GT. g_used) THEN
-	  DO 350 i = g_used+1, ngrid
-	    grid_name(i)   = char_init
-  350	  CONTINUE
-	ENDIF
-	IF (nline .GT. l_used) THEN
-	  DO 360 i = l_used+1, nline
-	    line_name(i)   = char_init16
-	    line_subsc1(i) = unspecified_int4
-  360	  CONTINUE
-	ENDIF
-	next_line_mem_pos = orig_line_mem_pos
-	GOTO 9999
-
- 9990	status = merr_ok
-
- 9999	IF ( opened ) CLOSE (UNIT = lunit)
-	RETURN
+ 5000	RETURN
 	END
+
diff --git a/fmt/src/tm_rm_tmp_line.F b/fmt/src/tm_rm_tmp_line.F
index 0a0f805..824e347 100644
--- a/fmt/src/tm_rm_tmp_line.F
+++ b/fmt/src/tm_rm_tmp_line.F
@@ -65,11 +65,15 @@
 	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)
 
+* Recover the coordinate storage used for an irregularly-spaced line.
+        IF ( .NOT. line_regular(line) ) CALL FREE_LINE_DYNMEM (line)
+        line_regular(line) = .TRUE.
+
 * successful completion
 	RETURN
 
diff --git a/fmt/src/tm_warn_subspan.F b/fmt/src/tm_set_clim_axes.F
similarity index 53%
copy from fmt/src/tm_warn_subspan.F
copy to fmt/src/tm_set_clim_axes.F
index f57e9c4..ec7065b 100644
--- a/fmt/src/tm_warn_subspan.F
+++ b/fmt/src/tm_set_clim_axes.F
@@ -1,10 +1,11 @@
-	SUBROUTINE TM_WARN_SUBSPAN (iaxis)
+	SUBROUTINE TM_SET_CLIM_AXES 
 
+*
 *  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
@@ -32,52 +33,69 @@
 *  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.
+*
+*  Allocate dynamic line storage and put coordinate data into lines for climatogical axes
+
 
         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
 
-* argument declarations
-	INTEGER iaxis
+
+	INTEGER i, npts, status
+
+	npts = 12
+
+* MONTH_IRREG
+
+	CALL GET_LINE_DYNMEM (npts, clmirr, status) 
+
+	DO i = 1, npts
+	   CALL PUT_LINE_COORD ( linemem(clmirr)%ptr, i, clim_line_coords(i,clmirr) )
+	   CALL PUT_LINE_COORD ( lineedg(clmirr)%ptr, i, clim_line_edges(i,clmirr) )
+	ENDDO
+	CALL PUT_LINE_COORD ( lineedg(clmirr)%ptr, npts+1, clim_line_edges(i,clmirr) )
+
+    
+* MONTH_GREGORIAN
+     
+	CALL GET_LINE_DYNMEM (npts, clmgrg, status) 
+	DO i = 1, npts
+	   CALL PUT_LINE_COORD ( linemem(clmgrg)%ptr, i, clim_line_coords(i,clmgrg) )
+	   CALL PUT_LINE_COORD ( lineedg(clmgrg)%ptr, i, clim_line_edges(i,clmgrg) )
+	ENDDO
+	CALL PUT_LINE_COORD ( lineedg(clmgrg)%ptr, npts+1, clim_line_edges(i,clmgrg) )
 
 
-* 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
+* MONTH_NOLEAP
+          
+	CALL GET_LINE_DYNMEM (npts, clmnol, status) 
+	DO i = 1, npts
+	   CALL PUT_LINE_COORD ( linemem(clmnol)%ptr, i, clim_line_coords(i,clmnol) )
+	   CALL PUT_LINE_COORD ( lineedg(clmnol)%ptr, i, clim_line_edges(i,clmnol) )
+	ENDDO
+	CALL PUT_LINE_COORD ( lineedg(clmnol)%ptr, npts+1, clim_line_edges(i,clmnol) )
 
-	INTEGER tt  ! nice short name
-	EQUIVALENCE (tt,lunit_errors)
 
-	vlen = TM_LENSTR1(line_name(iaxis))
-        axwwlen = TM_WW_AXLEN(iaxis)
+* MONTH_ALL_LEAP
+    
+	CALL GET_LINE_DYNMEM (npts, clmall, status) 
+	DO i = 1, npts
+	   CALL PUT_LINE_COORD ( linemem(clmall)%ptr, i, clim_line_coords(i,clmall) )
+	   CALL PUT_LINE_COORD ( lineedg(clmall)%ptr, i, clim_line_edges(i,clmall) )
+	ENDDO
+	CALL PUT_LINE_COORD ( lineedg(clmall)%ptr, npts+1, clim_line_edges(i,clmall) )
 
-* get the nominal delta grid cell length for comparison
 
-	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
+* MONTH_JULIAN
+     
+	CALL GET_LINE_DYNMEM (npts, clmjul, status) 
+	DO i = 1, npts
+	   CALL PUT_LINE_COORD ( linemem(clmjul)%ptr, i, clim_line_coords(i,clmjul) )
+	   CALL PUT_LINE_COORD ( lineedg(clmjul)%ptr, i, clim_line_edges(i,clmjul) )
+	ENDDO
+	CALL PUT_LINE_COORD ( lineedg(clmjul)%ptr, npts+1, clim_line_edges(i,clmjul) )
 
-        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
-	
 	RETURN
 	END
diff --git a/fmt/src/tm_warn_subspan.F b/fmt/src/tm_warn_subspan.F
index f57e9c4..e5fb1bb 100644
--- a/fmt/src/tm_warn_subspan.F
+++ b/fmt/src/tm_warn_subspan.F
@@ -52,7 +52,7 @@
 * local variable declarations:
 	LOGICAL	TM_ITS_SUBSPAN_MODULO
 	INTEGER TM_LENSTR1, alen, blen, vlen
-	REAL	TM_WW_AXLEN, axwwlen, delta
+	REAL	TM_WW_AXLEN, GET_LINE_COORD, axwwlen, delta
 	CHARACTER*16 TM_FMT, buff1, buff2
 
 	INTEGER tt  ! nice short name
@@ -66,7 +66,7 @@
 	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))
+	   delta = GET_LINE_COORD(linemem(iaxis)%ptr, 2) - GET_LINE_COORD(linemem(iaxis)%ptr, 1)
 	ENDIF
 
         IF (line_modulo(iaxis) .AND. TM_ITS_SUBSPAN_MODULO(iaxis) .AND.
diff --git a/fmt/src/tm_world_ax.F b/fmt/src/tm_world_ax.F
index e3e97a0..380feb3 100644
--- a/fmt/src/tm_world_ax.F
+++ b/fmt/src/tm_world_ax.F
@@ -72,7 +72,7 @@
      .		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, 
+	REAL*8	TM_WORLD_RECUR, TM_MODULO_AXLEN, GET_LINE_COORD,
      .		midpoint, box_size, tempwld, lo, hi
 
 * initialize
@@ -219,16 +219,16 @@
 
 	ELSE
 * irregularly spaced points
-* ... keep subscript within bounds ( between 1 and dimension of axis )
-	  isub  = isub + line_subsc1(iaxis) - 1
+
 * ... now where within the grid box ?
 	  IF ( where_in_box .EQ. box_lo_lim ) THEN
-	    tempwld = line_mem(isub+line_dim(iaxis))
+	    tempwld = GET_LINE_COORD (lineedg(iaxis)%ptr, isub)
 	  ELSEIF ( where_in_box .EQ. box_middle ) THEN
-	    tempwld = line_mem(isub)
+	    tempwld =  GET_LINE_COORD (linemem(iaxis)%ptr, isub)
 	  ELSE
-	    tempwld = line_mem(isub+line_dim(iaxis)+1)
+	    tempwld = GET_LINE_COORD (lineedg(iaxis)%ptr, isub+1)
 	  ENDIF
+
 	  IF ( line_modulo( iaxis ) ) THEN
 	    IF (isubscript .LE. 0) THEN
 	      rmod = isubscript/line_len - 1
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fmt/src/tm_ww_ax_1_n.F
index b1d5c72..1896393 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fmt/src/tm_ww_ax_1_n.F
@@ -49,8 +49,8 @@
 
 * internal variable declarations
 	LOGICAL ITSA_TRUEMONTH_AXIS
-	INTEGER	isub1, llen, iiaxis
-	REAL	TM_WORLD
+	INTEGER	llen, iiaxis
+	REAL	TM_WORLD, GET_LINE_COORD
 
 	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
 	  lo = unspecified_val8
@@ -64,10 +64,9 @@
 	ELSE
 	  iiaxis = axis
 	  IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
-	  isub1 = line_subsc1(iiaxis)
 	  llen = line_dim(iiaxis)
-	  lo = line_mem(isub1)
-	  hi = line_mem(isub1 + llen - 1)
+	  lo = GET_LINE_COORD (linemem(axis)%ptr, 1)
+	  hi = GET_LINE_COORD (linemem(axis)%ptr, llen)
 	ENDIF
 
 	RETURN
diff --git a/fmt/src/tm_ww_axlims.F b/fmt/src/tm_ww_axlims.F
index b8a8561..af5d142 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fmt/src/tm_ww_axlims.F
@@ -50,8 +50,8 @@
 
 * internal variable declarations
 	LOGICAL ITSA_TRUEMONTH_AXIS
-	INTEGER	isub1, llen, iiaxis
-	REAL	TM_WORLD
+	INTEGER	llen, iiaxis
+	REAL	TM_WORLD, GET_LINE_COORD
 
 	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
 	  lo = unspecified_val8
@@ -65,10 +65,11 @@ c	  hi = TM_WORLD (line_dim(axis), axis, box_hi_lim )
 	ELSE
 	  iiaxis = axis
 	  IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
-	  isub1 = line_subsc1(iiaxis)
 	  llen = line_dim(iiaxis)
-	  hi = line_mem(isub1 + 2*llen)
-	  lo = line_mem(isub1 +   llen)
+	  
+	  lo = GET_LINE_COORD (lineedg(iiaxis)%ptr, 1)
+	  hi = GET_LINE_COORD (lineedg(iiaxis)%ptr, llen+1)
+
 	ENDIF
 
 	RETURN
diff --git a/fmt/src/xgt_grid_data.F b/fmt/src/xgt_grid_data.F
index e7f7e3a..ac86bea 100644
--- a/fmt/src/xgt_grid_data.F
+++ b/fmt/src/xgt_grid_data.F
@@ -74,6 +74,7 @@
 * 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
+* V72 8/17 *acm*   For trac enhancement #767 -- dynamic coordinate storage
 
 	include 'tmap_dims.parm'
 	include 'implicit.parm'
@@ -83,23 +84,16 @@
 	include 'xtm_grid.cmn_text'
 
 	INTEGER		ngrd_def, nlne_def, grids_left, lines_left,
-     .			grid_lines_left, i, j,
-     .			pline_mem_next, pline_mem_left, outtype
+     .			grid_lines_left, i, j, outtype
 
 	PARAMETER	(ngrd_def	= 0,
      .			 nlne_def	= 8,
      .			 grids_left	= grid_ceiling-ngrd_def,
      .			 lines_left	= line_ceiling-nlne_def,
-     .			 grid_lines_left= nferdims*grids_left,
-     .                   pline_mem_next = 127,
-     .                   pline_mem_left = maxlinestore-pline_mem_next+1)
+     .			 grid_lines_left= nferdims*grids_left)
 
 	PARAMETER	(outtype	= 6)  ! netcdf type double, output axis type.
 
-* LAST LINE_MEM POSITION + 1
-	DATA	next_line_mem_pos  /pline_mem_next/
-        DATA    pline_mem_init / pline_mem_next/
-
 * DEFINE LINES
 
 	DATA
@@ -275,6 +269,10 @@
 
 	DATA	(line_regular(i),i=nlne_def+1,line_ceiling)
      .			/lines_left*.FALSE./
+	DATA	(line_dim_only(i),i=nlne_def+1,line_ceiling)
+     .			/lines_left*.FALSE./
+	DATA	(line_allocated(i),i=nlne_def+1,line_ceiling)
+     .			/lines_left*0/
 
 	DATA	(line_t0(i),i=nlne_def+1,line_ceiling)
      .			/lines_left*char_init20/
@@ -298,9 +296,6 @@
 	DATA	(line_dattype(i),i=1,line_ceiling)
      .			/line_ceiling*outtype/
 
-c comment out to speed compilation and decrease mem needs *kob* 7/92
-c	DATA	(line_mem(i),i=pline_mem_next,maxlinestore)
-c     .			/pline_mem_left*real8_init/
 
 	DATA	(grid_name(i),i=ngrd_def+1,grid_ceiling)
      .			/grids_left*char_init16/
@@ -319,26 +314,32 @@ c     .			/pline_mem_left*real8_init/
 
 * MONTH_IRREG
 
+* on startup, allocate these lines dynamically and store the following coordinates
+
 *  COORDS FOR MONTH_IRREG
-	DATA	(line_mem(i),i=2,13)
+
+	DATA	(clim_line_coords( i,clmirr ), i=1,12)
      .	/     15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 
      .	     196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425/
 
 *  BOX BOUNDARIES FOR MONTH_IRREG
-	DATA	(line_mem(i),i=14,26)
+	DATA	(clim_line_edges ( i,clmirr ), i=1,13)
      .	/     0.0, 31.0, 59.2425, 90.2425, 120.2425, 151.2425, 
      .	    181.2425, 212.2425, 243.2425, 273.2425, 304.2425, 
      .	    334.2425, 365.2425/
-     
+
+    
 * MONTH_GREGORIAN
      
 *  COORDS FOR MONTH_GREGORIAN
-	DATA	(line_mem(i),i=27,38)
+
+	DATA	(clim_line_coords( i,clmgrg ), i=1,12)
      .	/     15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425, 
      .	     196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425/
 
+     
 *  BOX BOUNDARIES FOR MONTH_GREGORIAN
-	DATA	(line_mem(i),i=39,51)
+	DATA	(clim_line_edges ( i,clmgrg ), i=1,13)
      .	/     0.0, 31.0, 59.2425, 90.2425, 120.2425, 151.2425, 
      .	    181.2425, 212.2425, 243.2425, 273.2425, 304.2425, 
      .	    334.2425, 365.2425/
@@ -346,38 +347,37 @@ c     .			/pline_mem_left*real8_init/
 * MONTH_NOLEAP
      
 *  COORDS FOR MONTH_NOLEAP
-	DATA	(line_mem(i),i=52,63)
+	DATA	(clim_line_coords( i,clmnol ), i=1,12)
      .	/     15.5,  45.0,  74.5, 105.0, 135.5, 166.0, 196.5, 
      .	     227.5, 258.0, 288.5, 319.0, 349.5/
 
 *  BOX BOUNDARIES FOR MONTH_NOLEAP
-	DATA	(line_mem(i),i=64,76)
+	DATA	(clim_line_edges ( i,clmnol ), i=1,13)
      .	/     0.0, 31.0, 59.0, 90.0, 120.0, 151.0, 181.0, 
      .      212.0, 243.0, 273.0, 304.0, 334.0, 365.0/
 
+
 * MONTH_ALL_LEAP
-     
+    
 *  COORDS FOR MONTH_ALL_LEAP
-	DATA	(line_mem(i),i=77,88)
+	DATA	(clim_line_coords( i,clmall ), i=1,12)
      .	/     15.5, 45.5, 75.5, 106.0, 136.5, 167.0, 197.5, 
      .       228.5, 259.0, 289.5, 320.0, 350.5/
 
 *  BOX BOUNDARIES FOR MONTH_ALL_LEAP
-	DATA	(line_mem(i),i=89,101)
+	DATA	(clim_line_edges ( i,clmall ), i=1,13)
      .	/     0.0, 31.0, 60.0, 91.0, 121.0, 152.0, 182.0, 213.0, 
      .      244.0, 274.0, 305.0, 335.0, 366.0/
 
-
 * MONTH_JULIAN
      
 *  COORDS FOR MONTH_JULIAN
-	DATA	(line_mem(i),i=102,113)
+	DATA	(clim_line_coords( i,clmjul ), i=1,12)
      .	/         15.50,  45.25,  74.75, 105.25, 135.75, 166.25, 
      .           196.75, 227.75, 258.25, 288.75, 319.25, 349.750/
 
-
 *  BOX BOUNDARIES FOR MONTH_JULIAN
-	DATA	(line_mem(i),i=114,126)
+	DATA	(clim_line_edges ( i,clmjul ), i=1,13)
      .	/     0.0, 31.0, 59.25, 90.25, 120.25, 151.25, 181.25, 
      .      212.25, 243.25, 273.25, 304.25, 334.25, 365.25/
 
diff --git a/jnls/contrib/greatcircle.jnl b/jnls/contrib/greatcircle.jnl
new file mode 100644
index 0000000..7ae4b70
--- /dev/null
+++ b/jnls/contrib/greatcircle.jnl
@@ -0,0 +1,59 @@
+
+! greatcircle : definitions for great circle calculations between
+!               two locations lon1,lat1 and lon2,lat2 (in degrees)
+! Contributed by Mick Spillane, September 2011
+!
+let d2r=atan(1.)/45
+let rlon1=d2r*lon1 ; let rlat1=d2r*lat1
+let rlon2=d2r*lon2 ; let rlat2=d2r*lat2
+
+! define great circle distances from lon1,lat1 to lon2,lat2 in radians ...
+let/title="Great Circle Distance (radians)" \
+   gcrad=acos(sin(rlat1)*sin(rlat2)+cos(rlat1)*cos(rlat2)*cos(rlon2-rlon1))
+! ... and kilometers
+let/title="Great Circle Distance (km)" gckm=111.11*gcrad/d2r
+let/title="Great Circle Distance (nm)" gcnm=60*gcrad/d2r
+
+! define initial heading from lon1,lat1 to lon2,lat2 (clockwise from north)
+let gcharg=acos((sin(rlat2)-sin(rlat1)*cos(gcrad))/(sin(gcrad)*cos(rlat1)))
+! correct for near north-south pairings
+let gchfix=gcharg[x=@fln]/d2r
+let/title="Initial Heading (degrees)" \
+   gchead=if(sin(rlon2-rlon1) gt 0)then gchfix else 360-gchfix
+
+let lat=atan((tan(d2r*lat2)*sin(d2r*(lon-lon1))-tan(d2r*lat1)*sin(d2r*(lon-lon2)))/ \
+   sin(d2r*(lon2-lon1)))/d2r
+
+! Usage: the results "gcrad", "gckm", and "gchead" are computed based on
+!        existing variables lon1,lat1 representing the start point and
+!        lon2,lat2 representing the destination.
+!
+! NOTE : To plot a greatcircle from lon1,lat1 to lon2,lat2 define a variable "lon"
+!        that spans the interval between them with sufficient resolution, for example
+!               def axis/x=`lon1`:`lon2`:0.1 xax ; let lon=x[gx=xax]
+!               plot/o/vs/nolab/line=2 lon,lat
+!        If a gridded file such as a topography is available it may be convenient to 
+!        use that x-axis for "lon":
+!                       let lon=x[g=...]
+!               plot/o/vs/nolab/line=2/x=`lon1`:`lon2` lon,lat
+!
+
+! rhumbline : definitions for rhumb line calculations between
+!             two locations lon1,lat1 and lon2,lat2 (in degrees)
+!
+let d2r=atan(1.)/45 
+let rlon1=d2r*lon1 ; let rlat1=d2r*lat1 ; let mlat1=d2r*(45+lat1/2)
+let rlon2=d2r*lon2 ; let rlat2=d2r*lat2 ; let mlat2=d2r*(45+lat2/2)
+
+! define rhumbline course from lon1,lat1 to lon2,lat2
+let/title="Rhumb Line Heading (deg)" \
+   rlhead=mod(360-atan2(rlon1-rlon2,ln(tan(mlat2))-ln(tan(mlat1)))/d2r,360)
+let/title="Rhumb Line Distance (km)"\
+   rlkm=111.32*(if(lat1 eq lat2)then abs(lon2-lon1)*cos(rlat1) else (lat2-lat1)/cos(d2r*rlhead))
+let/title="Rhumb Line Distance (radians)"\
+   rlrad=rlkm/(111.32*d2r)
+!
+! to compute points on a rhumbline from (lon1,lat1) with distance "dist" at heading "dirn"
+!
+ let rllat=LAT1+DIST*COS(D2R*DIRN)/111.32
+ let rllon=if(cos(d2r*dirn) eq 0)then dist/(111.32*cos(d2r*lat1)) else LON1-TAN(D2R*DIRN)*(LN(TAN(D2R*(45+LAT1/2)))-LN(TAN(D2R*(45+rllat/2))))/d2r
diff --git a/jnls/examples/compress_str.jnl b/jnls/examples/compress_str.jnl
new file mode 100644
index 0000000..840a740
--- /dev/null
+++ b/jnls/examples/compress_str.jnl
@@ -0,0 +1,46 @@
+
+\CAN MODE verify
+
+! compress_str.jnl
+! Compresses a 1D string variable along its axis
+
+! Programmed by Ansley Manke & E.D. Cokelet, NOAA/PMEL, 2 Nov 2017
+! Last modified 2 Nov 2017
+
+! Usage: 
+! go compressi_str my_str_var my_str_var_compressed
+!                        $1            $2
+! Where
+! $1 = name of the string variable to be compressed
+! $2 = name of the compressed string variable
+
+! Get the direction of the variable
+
+DEFINE SYMBOL cstr_sh = `$1,RETURN=shape`
+
+! Is the variable 1-D?
+IF `STRLEN("($cstr_sh)") GT 1` THEN 
+   SAY Exiting: compress_str.jnl works on a 1D variable.  ($1) is ($cstr_sh)
+   EXIT/SCRIPT
+ENDIF
+
+! Is the variable a character variable?
+DEFINE SYMBOL cstr_typ = `$1,RETURN=dtype`
+IF `($cstr_typ"0|CHAR>1|*>0") NE 1` THEN 
+   SAY Exiting: compress_str.jnl works on a string variable.  ($1) is numeric
+   EXIT/SCRIPT
+ENDIF
+
+! Index name for the direction
+DEFINE SYMBOL cstr_shi = ($cstr_sh"|X>i|Y>j|Z>k|T>l|E>m|F>n")
+
+! Define the compressed string variable
+LET $1_str_length = STRLEN( $1 )
+
+LET $1_valid = IF STRLEN( $1 ) GT 0 THEN 1
+LET $1_sample_indices = \
+ COMPRESS($cstr_shi)( $1_valid*_($cstr_shi)[G($cstr_sh)=$1,($cstr_shi)=1:`$1,RETURN=($cstr_shi)size`] )
+LET $2 = SAMPLE($cstr_shi)( $1, $1_sample_indices )
+
+CANCEL SYMBOL cstr_*
+SET MODE/LAST verify
diff --git a/jnls/go/polyshape.jnl b/jnls/go/polyshape.jnl
index b351d64..e7e9ce7 100644
--- a/jnls/go/polyshape.jnl
+++ b/jnls/go/polyshape.jnl
@@ -7,6 +7,9 @@
 !  2/09 *acm* add bslash and hslash, and variations on some previous shapes
 !             trianglec and deltac are centered vertically
 !             exc is smaller, as are rectanglec and tallboxc.
+!  9/17 *acm* In order to plot correctly on a log axis, the shapes
+!             need to be symmetric vertically and left to right, fix the
+!             definitions for triangle, delta and star
 
 ! Description: define xpolyshape, ypolyshape variables for polygon fills
 
@@ -39,11 +42,15 @@ query/ignore $1"|triangle|delta|square|diamond|pentagon|hexagon|circle\
 IF $1"|triangle>1|*>0|" THEN
   LET/QUIET xpolyshape = COS(3.14159/180 * X[X=90:`2*120+90`:120])
   LET/QUIET ypolyshape = SIN(3.14159/180 * X[X=90:`2*120+90`:120])
+  LET/QUIET xpolyshape = COS(3.14159/180 * X[X=90:`2*120+90`:120])
+  LET/QUIET ypolyshape = {0.75,-0.75,-0.75}
 ENDIF
 
 IF $1"|delta>1|*>0|" THEN
   LET/QUIET xpolyshape = COS(3.14159/180 * X[X=30:`2*120+30`:120])
   LET/QUIET ypolyshape = SIN(3.14159/180 * X[X=30:`2*120+30`:120])
+  LET/QUIET ypolyshape = {0.75,0.75,-.75}
+
 ENDIF
 
 IF $1"|square>1|*>0|" THEN
@@ -81,7 +88,8 @@ IF $1"|star>1|*>0|" THEN
   !LET/QUIET ypeni = 0.3*SIN(3.14159/180 * X[X=`90-36`:`4*72+90-36`:72])
   !poly/over/line/hlimits=-1:1/vlimits=-1:1 xpeni,ypeni,0
   LET/QUIET xpolyshape = { 0.17634 , 0.00000 , -0.17634, -0.95106,  -0.28532,   -0.58779,    0.00000 ,    0.58778 ,    0.28532 ,    0.95106 }
-  LET/QUIET ypolyshape =  { 0.24270,  1.00000,  0.24271,  0.30902,  -0.09270,   -0.80902,  -0.30000,   -0.80902,   -0.09271,   0.30901 }
+  LET/QUIET ypolyshape =  { 0.1472,  0.9045,  0.1472,  0.2135, -0.1882, -0.9045, -0.3955, -0.9045, -0.1882,  0.2135}
+
 ENDIF
 
 IF $1"|plus>1|*>0|" THEN
diff --git a/palettes/six_line_colors.spk b/palettes/six_line_colors.spk
new file mode 100644
index 0000000..b8d34ea
--- /dev/null
+++ b/palettes/six_line_colors.spk
@@ -0,0 +1,10 @@
+RGB_Mapping By_level
+! Ferret line-colors (not in order used by Ferret)
+ 
+! Level    Red    Green   Blue
+ 1           0       0     100  ! blue
+ 2         100       0       0  ! red
+ 3           0     100       0  ! green
+ 4           0     100     100  ! cyan
+ 5         100       0     100  ! purple
+ 6           0       0       0  ! black
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel.F
index ecae03e..0ccbabf 100644
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel.F
@@ -4,6 +4,8 @@ C A simple forward to SYMBEL_HERSHEY.
 C This was done to match PyFerret where the original 
 C subroutine here was renamed SYMBEL_HERSHEY.
 C**
+C V7.22 *acm* 10/17 Fix ticket 2566: if zero or negative character size, exit.
+
 C
 C       CALL SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
 C
@@ -20,7 +22,8 @@ C        NCHAR  - NUMBER OF CHARACTERS TO BE DRAWN.
 C        STRING - ARRAY CONTAINING THE DISPLAY CODES OF THE
 C                 CHARACTERS TO BE DRAWN.
 C
-        CALL SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
+        IF (height .LE. 0. ) RETURN
+	CALL SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
         RETURN
         END
 
diff --git a/ppl/complot/symwid.F b/ppl/complot/symwid.F
index dfd0e3a..9b64876 100644
--- a/ppl/complot/symwid.F
+++ b/ppl/complot/symwid.F
@@ -37,13 +37,15 @@
 
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
+C V7.22 *acm* 10/17 Fix ticket 2566: if zero or negative character size, exit.
+
 	CHARACTER STRING*(*)
 	NC=-IABS(NCHAR)
 C
 C	THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
 C
 	SS=0.
-	IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
+	IF (NC.NE.0 .AND. height.GT.0.) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
 	SYMWID=SS
 	RETURN
 	END
diff --git a/ppl/nine_by_levels.spk b/ppl/nine_by_levels.spk
new file mode 100644
index 0000000..f1d5af7
--- /dev/null
+++ b/ppl/nine_by_levels.spk
@@ -0,0 +1,12 @@
+RGB_Mapping By_level
+ 
+! Level    Red  Green   Blue
+      1   80    0  100  ! violet
+      2  100   50    0  ! orange
+      3   50   90   30  ! light green
+      4   30   40  100  ! med blue
+      5  100    8   58  ! magenta
+      6    0   80   85  ! turq
+      7  100   75    0  ! gold
+      8   60    0    0  ! dark red
+      9   80   73   59  ! tan
diff --git a/ppl/plot/pltit.F b/ppl/plot/pltit.F
index 88e6f2b..41e44d8 100644
--- a/ppl/plot/pltit.F
+++ b/ppl/plot/pltit.F
@@ -331,6 +331,13 @@ C  Call WINDOW to restore values of XMIN, XMAX, YMIN, YMAX.
 	ELSE IF(MAKEP.EQ.'PLOT') THEN
 	   IPV = 0
 	   CALL PLOTXY(X,NXS,XF,YF,IPV)
+	   
+* See ticket 2565, shifted lbels on time overlay plots
+	   IF(SOVER .AND. (ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
+	      XHI = XTI
+	      XLO = XTL
+	   ENDIF
+
 	   if (interrupted) go to 3333
 
 ****    JD * ALINE CALL 
@@ -443,6 +450,11 @@ c	    CALL PLOTPOL(X,NXS,XF,YF)
 ***************************************************
 * TMAP addition for FILLPOL call
 	ELSE IF(MAKEP.EQ.'FILLPOL' .OR. MAKEP.EQ.'POLYGON')THEN
+* Get the time-axis scale right
+	    IF(SOVER .AND. (ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
+		XHI = XTI
+		XLO = XTL
+	    ENDIF
 	    CALL FILLPOL(X,NXS,XF,YF,iwind)
 	    IF ( interrupted ) GOTO 3333
 
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 19c7ef3..8d7f097 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -57,6 +57,7 @@ set_fill_area_rep.F\
 set_fill_ndx.F\
 set_gks_metafile.F\
 set_levels_shade_fill.F\
+set_nshd_levels.F\
 set_num_linecolors.F\
 set_one_color.F\
 set_open_levels.F\
diff --git a/fer/utl/gcf_set_normal_axis.F b/ppl/tmapadds/set_nshd_levels.F
similarity index 76%
copy from fer/utl/gcf_set_normal_axis.F
copy to ppl/tmapadds/set_nshd_levels.F
index 3a0ed70..f22a59d 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/ppl/tmapadds/set_nshd_levels.F
@@ -1,5 +1,6 @@
-	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
-
+	SUBROUTINE SET_NSHD_LEVELS (numlevs)
+      
+*
 *  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,23 +33,22 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* 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* 
+        IMPLICIT NONE
+        include         'shade_vars.cmn'
 
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
+	INTEGER numlevs
 
-* calling argument declarations
-	INTEGER		grid, idim
+*     10/10/2017  *acm*
+*
+* Update shd_levels to match the current value of nlev. 
+* ... For ticket 2564. Calls to load the palette and colors, PPL SHASET, use
+*     the stored setting shd_levels in the call to setup_color_table. In some
+*     instances that previous setting causes colors to be computed for non-existent
+*     levels and rgb colors outside the range [0:1]. Set shd_levels to correspond to 
+*     the nlev for this plot.
 
-	grid_line(idim, grid) = mnormal
-! anything else?
+      shd_levels = MAX (numlevs,1)
 
-	RETURN
-	END
+      return
+      end
diff --git a/site_specific.mk.in b/site_specific.mk.in
index 7c0af97..a8d327e 100644
--- a/site_specific.mk.in
+++ b/site_specific.mk.in
@@ -69,16 +69,3 @@ NETCDF4_DIR	= /usr/local/netcdf-4.4.1.1-64
 # READLINE_DIR = /usr/local/Cellar/readline/7.0.3_1
 
 ##
-## Java home directory - this may be already defined 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, threddsBrowser.jar is not built and the Ferret command
-## SET DATA /BROWSE (or the alias OPEN) will not work.
-##
-# JAVA_HOME	= /usr/java/latest
-# JAVA_HOME	= /usr/lib/jvm/java-oracle
-# JAVA_HOME	= /usr/lib/jvm/java-sun
-JAVA_HOME	= /usr/lib/jvm/java
-# JAVA_HOME	= /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
-
-##
diff --git a/threddsBrowser/.classpath b/threddsBrowser/.classpath
deleted file mode 100644
index 9ab0566..0000000
--- a/threddsBrowser/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="unittests"/>
-	<classpathentry kind="lib" path="toolsUI/toolsUI-4.1.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/threddsBrowser/.project b/threddsBrowser/.project
deleted file mode 100644
index 9fbe662..0000000
--- a/threddsBrowser/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>ThreddsBrowser</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/threddsBrowser/.settings/org.eclipse.jdt.core.prefs b/threddsBrowser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 31c5aed..0000000
--- a/threddsBrowser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Sun Jun 20 10:12:34 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/threddsBrowser/.settings/scoped_pref_store.prefs b/threddsBrowser/.settings/scoped_pref_store.prefs
deleted file mode 100644
index db2da74..0000000
--- a/threddsBrowser/.settings/scoped_pref_store.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jun 21 09:17:18 PDT 2010
-EnableVPG=false
-eclipse.preferences.version=1
diff --git a/threddsBrowser/Makefile b/threddsBrowser/Makefile
deleted file mode 100644
index a964a2e..0000000
--- a/threddsBrowser/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Makefile for creating threddsBrowser.jar
-#
-
-#
-# Include ../site_specific.mk for the possible definition of JAVA_HOME
-#
-include ../site_specific.mk
-
-TOOLSUI_JAR = toolsUI/toolsUI-4.1.jar
-
-JAVA_SOURCE_FILES = $(wildcard src/gov/noaa/pmel/ferret/threddsBrowser/*.java)
-
-.PHONY : all
-all : threddsBrowser.jar
-
-.PHONY : clean
-clean : 
-	rm -fr threddsBrowser.jar bin
-
-threddsBrowser.jar : $(JAVA_SOURCE_FILES) Makefile
-	rm -fr threddsBrowser.jar bin
-	mkdir bin
-ifdef JAVA_HOME
-	$(JAVA_HOME)/bin/javac -sourcepath src -classpath bin:$(TOOLSUI_JAR) -d bin $(JAVA_SOURCE_FILES)
-	$(JAVA_HOME)/bin/jar cf threddsBrowser.jar -C bin gov/noaa/pmel/ferret/threddsBrowser
-else
-	echo "JAVA_HOME not defined; building of threddsBrowser.jar skipped"
-endif
-
diff --git a/threddsBrowser/README b/threddsBrowser/README
deleted file mode 100644
index 0452df5..0000000
--- a/threddsBrowser/README
+++ /dev/null
@@ -1,24 +0,0 @@
-
-This is an Eclipse Java project directory, thus the reason for
-the .classpath and .project files, and .settings directory.
-The Makefile was created to mimic the standard Eclipse build,
-thus the reason for the separate src and bin directory trees.
-
-To successfully create threddsBrowser.jar using Makefile, 
-the environment variable JAVA_HOME needs to be defined as 
-the location of a Java 6 Development Kit.  If not defined, 
-the Makefile will attempt to define it if a directory 
-matching /usr/local/jdk1.6* is found.
-
-Also, the toolsUI jar file given by TOOLSUI_JAR in 
-Makefile needs to be present.  The latest release version 
-of the toolsUI jar file can be downloaded from 
-    http://www.unidata.ucar.edu/software/netcdf-java/
-
-The resulting threddsBrowser.jar as well as the toolsUI 
-jar file need to be put into the $FER_DIR/lib directory.
-The toolsUI jar file is accessed using the name toolsUI.jar,
-so, if not already given by this name, add a symbolic link 
-named toolsUI.jar pointing to the actual toolsUI jar file:
-    ln -s <actual_name> toolsUI.jar
-
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/BrowserDefaults.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/BrowserDefaults.java
deleted file mode 100644
index 89a39f3..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/BrowserDefaults.java
+++ /dev/null
@@ -1,302 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.Dimension;
-import java.io.File;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Default settings for a ThreddsBrowser
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class BrowserDefaults {
-
-	/** XMLStore key for a Dimension giving the size of the browser JPanel */
-	public static final String BROWSER_SIZE = "BrowserSize";
-
-	/** XMLStore key for an int giving the location of the divider between the tree viewer and the HTML viewer */
-	public static final String DIVIDER_LOCATION = "DividerLocation";
-
-	/** XMLStore key for a String giving a space/comma/semicolon separated list of acceptable filename extensions for local datasets */ 
-	public static final String DATASET_FILENAME_EXTENSIONS = "DatasetFilenameExtensions";
-
-	/** XMLStore key for a String given the default directory for the local directory file chooser */
-	public static final String LOCAL_BROWSE_DIRNAME = "LocalBrowseDirname";
-
-	/** XMLStore key for a List of Strings giving locations for the drop-down list */
-	public static final String LOCATION_STRINGS_LIST = "LocationStringsList";
-
-	/** Initial Strings for the drop-down list of locations */
-	private Collection<String> locations;
-
-	/** Location of the split pane divider */
-	private int dividerLocation;
-
-	/** Initial directory of the local browse file chooser */ 
-	private File localBrowseDir;
-
-	/** String of acceptable filename extensions for datasets */
-	private String extensionsString;
-
-	/** Size of the ThreddsBrowser */
-	private Dimension browserSize;
-	
-	/**
-	 * Get the defaults for ThreddsBrowser from the given preferences and the initial
-	 * locations environment variable.
-	 * A location String will appear only once in the locations collection and 
-	 * will be in the order when they first appear:
-	 * <ol>
-	 * <li> in the locations list saved in stored preferences </li>
-	 * <li> in the value of the locations environment variable</li>
-	 * </ol>
-	 * @param prefs the stored preferences; may be null
-	 * @param defLocsEnvName the name of the locations environment variable whose
-	 * value is a space-separated list of possibly-quoted locations; may be null
-	 */
-	public BrowserDefaults(PreferencesExt prefs, String defLocsEnvName) {
-		// Get the list from the store preferences
-		List<String> locationsList = null;
-		if ( prefs != null ) {
-			@SuppressWarnings("unchecked")
-			List<String> locsList = (List<String>) prefs.getList(LOCATION_STRINGS_LIST, null);
-			locationsList = locsList;
-		}
-
-		// Use a LinkedHashSet to maintain ordered single copies of the locations
-		locations = new LinkedHashSet<String>();
-		if ( locationsList != null ) {
-			for (String loc : locationsList) {
-				if ( (loc != null) && ! loc.isEmpty() ) {
-					locations.add(loc);
-				}
-			}
-		}
-
-		// Add locations from the environment variable
-		try {
-			String locsEnvValue = System.getenv(defLocsEnvName);
-			// space separated, possibly double- or single-quoted, values - does not recognize escaping
-			String patStr = "\\s*\"([^\"]*?)\"|\\s*'([^']*?)'|\\s*(\\S*)";
-			Pattern p = Pattern.compile(patStr);
-			Matcher m = p.matcher(locsEnvValue);
-			while ( m.find() ) {
-				String loc = m.group(1);
-				if ( loc == null )
-					loc = m.group(2);
-				if ( loc == null )
-					loc = m.group(3);
-				if ( (loc != null) && ! loc.isEmpty() )
-					locations.add(loc);
-			}
-		} catch (Exception e) {
-			; // nothing to add
-		}
-
-		// Location of the split pane divider 
-		dividerLocation = 400;
-		if ( prefs != null ) {
-			int loc = prefs.getInt(DIVIDER_LOCATION, dividerLocation);
-			if ( loc > 0 ) {
-				dividerLocation = loc;
-			}
-		}
-
-		// Local browse directory
-		localBrowseDir = null;
-		if ( prefs != null ) {
-			String localBrowseDirname = (String) prefs.getBean(LOCAL_BROWSE_DIRNAME, null);
-			if ( localBrowseDirname != null ) {
-				File localDir = new File(localBrowseDirname + File.separator);
-				if ( localDir.isDirectory() ) {
-					localBrowseDir = localDir;
-				}
-			}
-		}
-
-		// String of acceptable filename extensions for displayed datasets
-		extensionsString = "cdf, nc, ncd, des, dat, txt";
-		if ( prefs != null ) {
-			String newStr = (String) prefs.getBean(DATASET_FILENAME_EXTENSIONS, extensionsString);
-			// Make sure the string is in a standard, clean format
-			extensionsString = createExtensionsString(parseExtensionsString(newStr));
-		}
-
-		// Size of the browser
-		browserSize = new Dimension(800, 500);
-		if ( prefs != null ) {
-	    	Dimension size = (Dimension) prefs.getBean(BROWSER_SIZE, browserSize);
-	    	if ( (size.getHeight() > 0.0) && (size.getWidth() > 0.0) ) {
-	    		browserSize = size;
-	    	}
-		}
-	}
-
-	/**
-	 * @return the complete Collection of Strings for the drop-down list of locations 
-	 */
-	public Collection<String> getLocationStrings() {
-		return locations;
-	}
-
-	/**
-	 * @return the location of the split pane divider
-	 */
-	public int getDividerLocation() {
-		return dividerLocation;
-	}
-
-	/**
-	 * @return the initial directory of the local file chooser
-	 */
-	public File getLocalBrowseDir() {
-		return localBrowseDir;
-	}
-
-	/**
-	 * @return the String of acceptable filename extensions for datasets
-	 */
-	public String getExtensionsString() {
-		return extensionsString;
-	}
-
-	/**
-	 * @return the preferred size for the ThreddsBrowser
-	 */
-	public Dimension getBrowserSize() {
-		return browserSize;
-	}
-
-	/**
-	 * Save the initial list of locations string to a PreferencesExt that can be used
-	 * in the construction of a BrowserDefaults object.
-	 * @param prefs save the List of location strings in here.
-	 * @param locationsList the List of location strings to save; cannot be null.
-	 */
-	public static void saveLocationsList(PreferencesExt prefs, List<String> locationsList) {
-		prefs.putList(LOCATION_STRINGS_LIST, locationsList);
-	}
-
-	/**
-	 * Save the split pane divider location to a PerferencesExt that can be used
-	 * in the construction of a BrowserDefaults object.
-	 * @param prefs save the divider location here.
-	 * @param dividerLoc the divider location to save.
-	 */
-	public static void saveDividerLocation(PreferencesExt prefs, int dividerLoc) {
-		prefs.putInt(DIVIDER_LOCATION, dividerLoc);
-	}
-
-	/**
-	 *
-	 * Save the initial directory for the local file chooser to a PerferencesExt 
-	 * that can be used in the construction of a BrowserDefaults object.
-	 * @param prefs save the local directory here.
-	 * @param localDir the local directory to save; can be null.
-	 */
-	public static void saveLocalBrowseDir(PreferencesExt prefs, File localDir) {
-		if ( localDir != null ) {
-			prefs.putBeanObject(LOCAL_BROWSE_DIRNAME, localDir.getPath());
-		}
-	}
-
-	/**
-	 * Save the String of acceptable filename extensions for datasets to a PreferencesExt
-	 * that can be used in the construction of a BrowserDefaults object.
-	 * @param prefs save the filename extensions String here.
-	 * @param extsString the filename extensions String to save; cannot be null.
-	 */
-	public static void saveExtensionsString(PreferencesExt prefs, String extsString) {
-		prefs.putBeanObject(DATASET_FILENAME_EXTENSIONS, extsString);
-	}
-
-	/**
-	 * Save the size of the browser to a PreferencesExt
-	 * that can be used in the construction of a BrowserDefaults object.
-	 * @param prefs save the browser size here.
-	 * @param size the browser size to save; cannot be null.
-	 */
-	public static void saveBrowserSize(PreferencesExt prefs, Dimension size) {
-		prefs.putBeanObject(BROWSER_SIZE, size);
-	}
-
-	/**
-	 * Parses a String of comma/semicolon/space-separated acceptable filename extensions
-	 * for datasets and produces a Collection of the individual extension Strings.
-	 * @param extsString the String of comma/semicolon/space-separated extensions; cannot be null.
-	 * @return a Collection of the acceptable filename extension Strings.  
-	 * Will not be null but may be empty.
-	 */
-	public static Collection<String> parseExtensionsString(String extsString) {
-		// Parse the returned string to get the individual extensions
-		String[] extensions = extsString.split("\\s*[\\s;,]\\s*");
-		LinkedHashSet<String> extsSet = new LinkedHashSet<String>(extensions.length);
-		for (String ext : extensions) {
-			if ( ! ext.isEmpty() ) {
-				extsSet.add(ext);
-			}
-		}
-		return extsSet;
-	}
-
-	/**
-	 * Creates String of comma-space separated acceptable filename extensions for 
-	 * datasets from a Collection of individual extension Strings.
-	 * @param extsColl the Collection of individual extension Strings; cannot be null.
-	 * @return the String of comma-space separated acceptable filename extensions.
-	 * Will not be null but may be empty.
-	 */
-	public static String createExtensionsString(Collection<String> extsColl) {
-		StringBuilder extBuilder = new StringBuilder();
-		boolean first = true;
-		for (String ext : extsColl) {
-			if ( (ext == null) || ext.isEmpty() )
-				continue;
-			if ( first )
-				first = false;
-			else
-				extBuilder.append(", ");
-			extBuilder.append(ext);
-		}
-		return extBuilder.toString();
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ExtensionFileFilter.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ExtensionFileFilter.java
deleted file mode 100644
index 05b53d3..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ExtensionFileFilter.java
+++ /dev/null
@@ -1,91 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.util.Collection;
-import java.util.HashSet;
-
-/**
- * A file filter based on a set of filename extensions
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class ExtensionFileFilter extends HashSet<String> implements FileFilter {
-	private static final long serialVersionUID = -5282011356208993578L;
-
-	/**
-	 * Create a file filter with an empty set of extensions;
-	 * thus all files are accepted.
-	 */
-	public ExtensionFileFilter() {
-	}
-
-	/**
-	 * Create a file filter from the given Collection of extensions.
-	 * If this set of extensions is empty, all files are accepted.
-	 * @param extensionsSet the set of acceptable extensions. 
-	 * Cannot be null.
-	 * The extensions should <b> not </b> contain the '.'
-	 */
-	public ExtensionFileFilter(Collection<String> extensionsSet) {
-		super(extensionsSet);
-	}
-
-	/**
-	 * @return true if fileToCheck is a file with an extension given in 
-	 * the set of extension (if not empty) used to construct this object.
-	 * If that set of extensions is empty, all files are accepted.  
-	 * Hidden files/directories always return false.
-	 * Visible directories always return true.
-	 */
-	@Override
-	public boolean accept(File fileToCheck) {
-		if ( fileToCheck.isHidden() )
-			return false;
-		if ( size() == 0 )
-			return true;
-		if ( fileToCheck.isDirectory() )
-			return true;
-		String name = fileToCheck.getName();
-		int loc = name.lastIndexOf('.') + 1;
-		if ( (loc <= 0) || (loc >= name.length()) )
-			return false;
-		String ext = name.substring(loc);
-		if ( contains(ext) )
-			return true;
-		return false;
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/HTMLViewer.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/HTMLViewer.java
deleted file mode 100644
index 03347d2..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/HTMLViewer.java
+++ /dev/null
@@ -1,116 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.IOException;
-import java.net.URL;
-
-import javax.swing.JEditorPane;
-import javax.swing.JScrollPane;
-import javax.swing.event.HyperlinkListener;
-
-/**
- * Used to display HTML in a scrolled JEditorPane
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class HTMLViewer extends JScrollPane {
-
-	private static final long serialVersionUID = -8436110289990707935L;
-
-	private static final String HTML_HEADER_STRING =
-		"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n" +
-		"<html>\n" +
-		"<head>\n" +
-		"<meta http-equiv=\"Content-Type\" content=\"text/html\">\n" +
-		"</head>\n" +
-		"<body>\n";
-
-	private static final String HTML_FOOTER_STRING =
-		"</body>\n" +
-		"</html\n";
-
-	private JEditorPane htmlEditor;
-
-	/**
-	 * Creates this JScrolledPane containing a non-editable JEditorPane
-	 */
-	public HTMLViewer() {
-		// Editor of view HTML description of the selected dataset
-		htmlEditor = new JEditorPane();
-	    htmlEditor.setEditable(false);
-	    setViewportView(htmlEditor);
-	}
-
-	/**
-	 * Adds a hyperlinkListener to the JEditorPane component.
-	 * @see JEditorPane#addHyperlinkListener(HyperlinkListener)
-	 * @param hyperlinkListener the listener to add
-	 */
-	public void addHyperlinkListener(HyperlinkListener hyperlinkListener) {
-		// Just pass this on to the JEditorPane
-		htmlEditor.addHyperlinkListener(hyperlinkListener);
-	}
-
-	/**
-	 * Reset the displayed page to a new empty HTML document.
-	 * This will reset the style sheet to the default.
-	 */
-	public void clearPage() {
-		htmlEditor.setContentType("text/html");
-		htmlEditor.setDocument(htmlEditor.getEditorKit().createDefaultDocument());
-		htmlEditor.setText(HTML_HEADER_STRING + HTML_FOOTER_STRING);
-	}
-
-	/**
-	 * Displays the given string as the body of an HTML page in the current 
-	 * document in the HTMLViwer.  Standard HTML header (up to and including 
-	 * the <body> tag) and footer (the </body> tag and after) tags are added 
-	 * to the given string before displaying. 
-	 */
-	public void showHTMLBodyText(String htmlBodyString) {
-		htmlEditor.setText(HTML_HEADER_STRING + htmlBodyString + HTML_FOOTER_STRING);
-	}
-
-	/**
-	 * Opens and displays the HTML page at the given URL.
-	 * @see JEditorPane#setPage(URL)
-	 * @param url URL of the page to display
-	 * @throws IOException if the JEditorPane thows one
-	 */
-	public void setPage(URL url) throws IOException {
-		// Just pass this on to the JEditorPane
-		htmlEditor.setPage(url);
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirInvDatasetImpl.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirInvDatasetImpl.java
deleted file mode 100644
index 8b94483..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirInvDatasetImpl.java
+++ /dev/null
@@ -1,68 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import thredds.catalog.InvDatasetImpl;
-
-/**
- * An InvDatasetImpl that overrides hasNestedDatasets to always return true.
- * The only purpose of this class is to create an InvDatasetImpl that will
- * always be shown as a folder in a {@link thredds.catalog.ui.CatalogTreeView}.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocalDirInvDatasetImpl extends InvDatasetImpl {
-
-	/**
-	 * Creates an InvDatsetImpl with null for the dataType and the urlPath.
-	 * The hasNestedDatasets method of this InvDatasetImpl is overridden to
-	 * always return true. 
-	 * @param parent parent dataset
-	 * @param name display name of the dataset
-	 * @param serviceName default service (may be null)
-	 */
-	public LocalDirInvDatasetImpl(InvDatasetImpl parent, String name, String serviceName) {
-		super(parent, name, null, serviceName, null);
-	}
-
-	/**
-	 * Always returns true so this dataset will be displayed as a folder in
-	 * a {@link thredds.catalog.ui.CatalogTreeView}.
-	 * @return true
-	 */
-	@Override
-	public boolean hasNestedDatasets() {
-		return true;
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanMonitor.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanMonitor.java
deleted file mode 100644
index 251b291..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanMonitor.java
+++ /dev/null
@@ -1,253 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-
-import javax.swing.JComponent;
-import javax.swing.ProgressMonitor;
-
-import thredds.catalog.InvCatalogImpl;
-
-/**
- * A monitor that sets up and runs a LocalDirTreeScanner, displays the scan progress, and fires
- * off a PropertyChange event when the scan is complete.
- * 
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocalDirTreeScanMonitor extends PropertyChangeSupport implements PropertyChangeListener {
-	private static final long serialVersionUID = 6099749370566968112L;
-
-	/** Maximum length of a truncated path String */
-	private final static int MAX_TRUNCATED_PATH_LENGTH = 60;
-
-	/** root of the local directory tree to scan */
-	File rootDir;
-	/** flag so that the final property change event sent to the ThreddsBrowser is sent only once */
-	boolean completed;
-	/** scanner/catalog builder for the local directory tree */
-	LocalDirTreeScanner scanner;
-	/** dialog for displaying the progress of the scan */
-	ProgressMonitor scanMonitor;
-
-	/**
-	 * Create a LocalDirTreeScanner as well as a ProgressMonitor.  The LocalDirTreeScanner will scan
-	 * and build a catalog for the local directory tree rooted at localDir using datasetFilter as the
-	 * file filter.  The ProgressMonitor will report the progress of this scan.  The scan is started
-	 * (in the background) by calling the runScan method.  A PropertyChange event is fired off to all 
-	 * registered PropertyChangeListeners when the scan is complete.  Possible values for this event are:
-	 * <ul>
-	 * <li> "Done": successful completion; getOldValue returns localDir, getNewValue returns the generated catalog
-	 * <li> "Canceled": scan canceled or interrupted; getOldValue returns localDir, getNewValue returns null 
-	 * 					(if canceled) or the InterruptedException (if interrupted, probably from being canceled)
-	 * <li> "Died": scan threw an exception; getOldValue returns localDir, getNewValue returns the cause of
-	 * 				the ExecutionException (ie, the exception thrown by the scanner) 
-	 * </ul>
-	 * @param parent the parent of the ProgressMonitor
-	 * @param localDir the root of the local directory tree to scan
-	 * @param datasetFilter the file filter for the scan; if null, all files are accepted
-	 * @throws IOException if localDir is not a valid directory
-	 */
-	LocalDirTreeScanMonitor(JComponent parent, File localDir, FileFilter datasetFilter) throws IOException {
-		super(new Object());
-		rootDir = localDir;
-		completed = false;
-		// Create the actual scanner/catalog builder
-		scanner = new LocalDirTreeScanner(rootDir, datasetFilter);
-		// Have the scanner notify us when PropertyChange events are fired off
-		scanner.addPropertyChangeListener(this);
-		// Create a ProgressMonitor to go with the scanner (being a SwingWorker, progress values are [0,100])
-		scanMonitor = new ProgressMonitor(parent, "Examining the local directory:                    ", 
-										  truncatedPathname(rootDir, rootDir, MAX_TRUNCATED_PATH_LENGTH), 0, 100);
-		/*
-		 *  If taking more than 0.5 s, always popup the progress dialog.  Changed from defaults because the progress
-		 *  estimate could easily be quite poor if there are lots of files in the last couple of directories.
-		 */
-		scanMonitor.setMillisToDecideToPopup(500);
-		scanMonitor.setMillisToPopup(500);
-	}
-
-	/**
-	 * Starts a background scan and build of the local directory tree catalog.
-	 */
-	public void runScan() {
-		scanner.execute();
-	}
-
-	/**
-	 * @return the total number of entries in the returned catalog.  If canceled,
-	 * the total number of entries examined prior to cancellation.
-	 */
-	public int getNumCatalogEntries() {
-		return scanner.getNumCatalogEntries();
-	}
-
-	/**
-	 * This gets called when a property changes in the LocalDirTreeScanner 
-	 * (a SwingWorker) or the ProgressMonitor associated with this object.
-	 */
-	@Override
-	public void propertyChange(PropertyChangeEvent evt) {
-		// If already fired off the final property change event just return
-		if ( completed )
-			return;
-
-		// If the scanner has completed, fire off the final property change event
-		if ( scanner.isDone() ) {
-			completed = true;
-			scanMonitor.close();
-			if ( scanner.isCancelled() ) {
-				firePropertyChange("Canceled", rootDir, null);
-			}
-			else {
-				try {
-					InvCatalogImpl catalog = scanner.get();
-					firePropertyChange("Done", rootDir, catalog);
-				} catch (InterruptedException e) {
-					// scanner was interrupted (probably from a cancel)
-					firePropertyChange("Canceled", rootDir, e);
-				} catch (ExecutionException e) {
-					// scanner threw an exception
-					firePropertyChange("Died", rootDir, e.getCause());
-				}
-			}
-			return;
-		}
-
-		/* 
-		 * If the cancel button on the ProgressMonitor has been pressed, cancel the scan and let
-		 * the resulting propertyChange event trigger the firing of the final property change event.
-		 * This depends on the scanner firing off PropertyChange events often enough to quickly 
-		 * detect this change.  Once the ProgressMonitor is canceled, isCanceled will always return 
-		 * true and so all event handling will stop here.
-		 */
-		if ( scanMonitor.isCanceled() ) {
-			scanner.cancel(true);
-			return;
-		}
-
-		// If a progress update from the scanner, update the ProgressMonitor's progress bar
-		if ( "progress".equals(evt.getPropertyName()) ) {
-            int progress = (Integer) evt.getNewValue();
-            scanMonitor.setProgress(progress);
-            return;
-        }
-
-		// If an update in the directory being examined, update the ProgressMonitor's note
-		if ( "Directory".equals(evt.getPropertyName()) ) {
-			File dir = (File) evt.getNewValue();
-			scanMonitor.setNote(truncatedPathname(dir, rootDir, MAX_TRUNCATED_PATH_LENGTH));
-		}
-	}
-
-	/**
-	 * Return a short pathname for the given File.  The name is truncated by using ellipses in
-	 * the middle of the path to try keep the length from of the returned String from exceeding 
-	 * MmaxLength.  If parent is given, the truncated name starts with the parent directory's 
-	 * name if the given File is a directory under parent.
-	 * @param fil the File to use
-	 * @param parent the parent File to use as for a relative path (can be null)
-	 * @param the maximum length of the returned short pathname
-	 * @return the short pathname
-	 */
-	public static String truncatedPathname(File fil, File parent, int maxLength) {
-		String filename = fil.getPath();
-		// If parent is given and fil is under parent, always use the relative path
-		if ( parent != null ) {
-			String parentPath = parent.getPath();
-			if ( filename.startsWith(parentPath) ) {
-				String parentName = parent.getName();
-				filename = parentName + filename.substring(parentPath.length());
-			}
-		}
-
-		// If short enough, use the complete name
-		if ( filename.length() <= maxLength )
-			return filename;
-
-		// Break up the path into each directory name components 
-		// (a leading '/' will give an empty first component)
-		String[] components = filename.split(File.separator);
-		// If just a simple name with no path, just return the filename
-		if ( components.length < 2 )
-			return filename;
-
-		// Initialize to "..." + File.separator + final_name
-		int numPre = 0;
-		int numPost = 1;
-		int firstPost = components.length - 1;
-		int accumLength = components[firstPost].length() + 4;
-
-		// If this shortest name is no shorter than the full filename, return the full filename
-		if ( filename.length() <= accumLength )
-			return filename;
-
-		// Construct the truncated name
-		while ( (numPre + numPost < components.length) && (accumLength < maxLength) ) {
-			if (numPre <= numPost ) {
-				accumLength += components[numPre].length() + 1;
-				if ( accumLength <= maxLength ) {
-					numPre += 1;
-				}
-			}
-			else {
-				accumLength += components[firstPost - 1].length() + 1;
-				if ( accumLength <= maxLength ) {
-					firstPost -= 1;
-					numPost += 1;
-				}
-			}
-		}
-
-		// Build the new truncated pathname
-		StringBuilder strBuilder = new StringBuilder();
-		for (int k = 0; k < numPre; k++) {
-			strBuilder.append(components[k]);
-			strBuilder.append(File.separator);
-		}
-		strBuilder.append("...");
-		for (int k = firstPost; k < components.length; k++) {
-			strBuilder.append(File.separator);
-			strBuilder.append(components[k]);
-		}
-
-		return strBuilder.toString();
-	}
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanner.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanner.java
deleted file mode 100644
index 72ddaa8..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanner.java
+++ /dev/null
@@ -1,294 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import javax.swing.SwingWorker;
-
-import thredds.catalog.InvCatalogImpl;
-import thredds.catalog.InvDataset;
-import thredds.catalog.InvDatasetImpl;
-import thredds.catalog.InvService;
-import thredds.catalog.ServiceType;
-
-/**
- * Scanner for a local directory to generate a complete catalog of the tree implemented as a SwingWorker.
- * Calling the execute on this SwingWorker will generate a complete catalog of the directory tree rooted 
- * at the local directory given in the constructor that pass the file filter given in the constructor.
- * This catalog can then be retrieved by the get method.  Progress is based on the percentage of the number 
- * of entries in the root directory, possibly plus its immediate subdirectories, that have been examined.
- * Progress is reported (as with all SwingWorkers) by firing PropertyChange events with the property name 
- * "progress" and a new value in [0,100].  The currently directory being examined is reported by firing 
- * PropertyChange events with the property name "Directory" and the File object representing the directory 
- * as the new value.
- * 
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocalDirTreeScanner extends SwingWorker<InvCatalogImpl, File> {
-	/** root of the local directory tree to scan */
-	private File localDir;
-	/** filter for the files/directories added to the catalog; can be null */
-	private FileFilter datasetFilter;
-	/** the progress total number of files/directories in localDir and its subdirectory passing the file filter */
-	private int numToExamine;
-	/** the subdirectory depth to count entries for progress */
-	private int countDepth;
-	/** the progress examined number of files/directories in localDir and its subdirectory passing the file filter */
-	private int numExamined;
-	/** the actual number of files/directories under localDir in the catalog */
-	private int actualCount;
-
-	
-	/**
-	 * Create a scanner/catalog builder ready to scan the local directory tree rooted at localDir
-	 * @param localDir local root directory of the tree to scan
-	 * @param datasetFilter filter for the files/directories added to the catalog; 
-	 * can be null, in which case all files/directories are added
-	 * @throws IOException if localDir is not a valid directory
-	 */
-	public LocalDirTreeScanner(File localDir, FileFilter datasetFilter) throws IOException {
-		if ( ! localDir.isDirectory() )
-			throw new IOException("Not a valid local directory: " + localDir.getPath());
-		this.localDir = localDir;
-		this.datasetFilter = datasetFilter;
-		numToExamine = 0;
-		countDepth = 0;
-		numExamined = 0;
-		actualCount = 0;
-	}
-
-	/**
-	 * Generate a complete catalog of the directory tree rooted at the local
-	 * directory given in the constructor of this class.
-	 */
-	@Override
-	protected InvCatalogImpl doInBackground() throws Exception {
-		// Send notice that we are examining the local tree root directory
-		setProgress(0);
-		publish(localDir);
-
-		// Initial the progress variables
-		computeNumToExamine();
-		numExamined = 0;
-		if ( isCancelled() )
-			return null;
-
-	    // Create the service for the catalog and datasets
-	    InvService service = new InvService("file:", ServiceType.FILE.toString(), "file:", null, null);
-
-	    // Create a new catalog
-		InvCatalogImpl catalog = new InvCatalogImpl(localDir.getPath(), null, localDir.toURI());
-		catalog.addService(service);
-
-		// Create the top-level dataset.  Since an access will be created in finish() 
-		// for each dataset with a URI path, don't add URI paths to directories
-		InvDatasetImpl topDataset = new LocalDirInvDatasetImpl(null, localDir.getName(), service.getName());
-		topDataset.setID(localDir.getPath());
-		topDataset.setCatalog(catalog);
-
-		// Recurse into the tree, adding InvDatasetImpl objects to the datasets field
-		addContentDatasets(topDataset, localDir, datasetFilter, service, 0);
-		if ( isCancelled() )
-			return null;
-		// Send notice that we are back to the root of the local directory tree
-		publish(localDir);
-
-		// Add this dataset to the catalog
-		catalog.addDataset(topDataset);
-
-		// Finish construction of the catalog
-		if ( ! catalog.finish() )
-			throw new IOException("Unable to finish construction of the catalog from " + localDir.getPath());
-
-		// Set the progress value to complete
-		setProgress(100);
-
-		return catalog;
-	}
-
-	/**
-	 * Using the local directory tree root and file filter used in the construction of this object,
-	 * assigns numToExamine and countDepth appropriately.  The value of numToExamine will be the 
-	 * one (for the root directory) plus the number of files and directories in this root directory, 
-	 * possibly plus the number of file and directories in the immediate subdirectories of this root 
-	 * directory.  The value of countDepth will be one (if only subdirectories of the root directory
-	 * is counted) or two (if subdirectories of these directories are also counted).
-	 * @throws IOException if localDir cannot be examined
-	 */
-	private void computeNumToExamine() throws IOException {
-		numToExamine = 1;
-
-		// Get the number of entries in localDir
-		File[] dirArray = localDir.listFiles(datasetFilter);
-		if ( dirArray == null )
-			throw new IOException("Unable to examine " + localDir.getPath());
-		numToExamine += dirArray.length;
-
-		// Decide whether to stop at this level or go into its subdirectories
-		if ( numToExamine >= 20 ) {
-			countDepth = 1;
-			return;
-		}
-
-		for (File subDir : dirArray) {
-			if ( subDir.isDirectory() ) {
-				if ( isCancelled() )
-					return;
-
-				// Add the number of entries in this subdirectory of localDir
-				try {
-					File[] subDirArray = subDir.listFiles(datasetFilter);
-					if ( subDirArray != null ) {
-						numToExamine += subDirArray.length;
-					}
-				} catch (Exception e) {
-					; // don't care
-				}
-			}
-		}
-		countDepth = 2;
-	}
-
-	/**
-	 * Adds datasets to parentDataset for each file/directory in parentDir that passes the filter.
-	 * When subdirectories are encountered, this method calls itself with the subdirectory dataset
-	 * and subdirectory File, thus filling out the full directory tree rooted at parentDir.
-	 * @param parentDataset add new child datasets to this dataset
-	 * @param parentDir directory to examine
-	 * @param datasetFilter filter on the files/directories to be added to the catalog.  
-	 * If null, all files/directories are added.
-	 * @param serviceName service name to be added to the InvDatasetImpl objects created
-	 * @param level the recursion level
-	 * @throws IOException if any of the file system operations throws one or if parentDir 
-	 * is unable to be read
-	 */
-	private void addContentDatasets(InvDatasetImpl parentDataset, File parentDir, FileFilter datasetFilter, 
-									InvService service, int level) throws IOException {
-		// Get the list of files and directories in this directory
-		File[] contentsArray = null;
-		try {
-			contentsArray = parentDir.listFiles(datasetFilter);
-		} catch (SecurityException e) {
-			;  // if don't have permission to read the directory, leave contentsArray null
-		}
-
-		// If there was a problem getting the contents of this directory, or it is empty, just go continue on to the next item
-		if ( (contentsArray == null) || (contentsArray.length == 0) ) {
-			return;
-		}
-		actualCount += contentsArray.length;
-
-		// Sort the array of files and directories
-		if ( contentsArray.length > 1 ) {
-			List<File> contentsList = Arrays.asList(contentsArray);
-			Collections.sort(contentsList);
-		}
-
-		// Add to the parent's datasets array a dataset for each file/dir returned
-		List<InvDataset> datasets = parentDataset.getDatasets();
-		for (File child : contentsArray) {
-			if ( isCancelled() )
-				return;
-			if ( child.isDirectory() ) {
-				InvDatasetImpl childDataset;
-				// Limited the level of recursion (mainly for infinite loops from symbolic links)
-				if ( level < 16 ) {
-					// Send notice of the new directory being examine
-					publish(child);
-					// Create the dataset with a null urlPath argument so no access created
-					childDataset = new LocalDirInvDatasetImpl(parentDataset, child.getName(), service.getName());
-					childDataset.setID(child.getPath());
-					// Add the contents of this directory 
-					addContentDatasets(childDataset, child, datasetFilter, service, level + 1);
-					// Send notice that we are back to the parent directory
-					publish(parentDir);
-				}
-				else {
-					// Create the dataset with a null urlPath argument so no access created
-					childDataset = new LocalDirInvDatasetImpl(parentDataset, child.getName() + " (not examined)", service.getName());
-					childDataset.setID(child.getPath());					
-				}
-				// Add this dataset to the parent's dataset
-				datasets.add(childDataset);
-			}
-			else {
-				// Get the URI string
-				String uriPathString = child.toURI().toString();
-				// Remove the base string from the service
-				String serviceBaseString = service.getBase();
-				if ( ! uriPathString.startsWith(serviceBaseString) )
-					throw new IOException("Unexpected URI string of child: " + uriPathString + "\n" +
-										  "under service URI string: " + serviceBaseString);
-				uriPathString = uriPathString.substring(serviceBaseString.length());
-				// Create the dataset with this urlPath argument so an appropriate access is created
-				InvDatasetImpl childDataset = new InvDatasetImpl(parentDataset, child.getName(), null, service.getName(), uriPathString);
-				childDataset.setID(child.getPath());
-				childDataset.setDataSize(child.length());
-				childDataset.setLastModifiedDate(new Date(child.lastModified()));
-				// Add this dataset to the parent's dataset
-				datasets.add(childDataset);
-			}
-			if ( level < countDepth ) {
-				// Update the progress
-				numExamined += 1;
-				setProgress((100 * numExamined) / numToExamine);
-			}
-		}
-	}
-
-	/**
-	 * @return the total number of entries in the returned catalog.  If canceled,
-	 * the total number of entries examined prior to cancellation.
-	 */
-	public int getNumCatalogEntries() {
-		return actualCount;
-	}
-
-	/**
-	 * Receives a lists of the directory Files that have been examined.
-	 * A method generates a PropertyChange event with the name "Directory"
-	 * and a new value of the last File in the list.
-	 */
-	@Override
-	protected void process(List<File> fileList) {
-		firePropertyChange("Directory", null, fileList.get(fileList.size() - 1));
-	}
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelector.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelector.java
deleted file mode 100644
index fecc529..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelector.java
+++ /dev/null
@@ -1,184 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Collection;
-import java.util.Vector;
-
-import javax.swing.JOptionPane;
-
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Maintains locations and filename extensions for a ThreddsBrowser.  Prompts the user for selecting
- * a location and, if applicable, filename extensions of datasets to be displayed in a ThreddsBrowser. 
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocationSelector {
-
-	/** the ThreddsBrowser associated with this location selector */
-	private ThreddsBrowser tBrowser;
-
-	/** list of saved locations */
-	private Vector<String> savedLocations;
-
-	/** Default directory for the local directory file chooser */ 
-	private File localBrowseDir;
-
-	/** A comma/semicolon/space separated list of acceptable filename extensions for local datasets */
-	private String extensionsString;
-
-	/**
-	 * Maintains locations and filename extensions for the given ThreddsBrowser.  Prompts the user for selecting
-	 * a location and, if applicable, filename extensions of datasets to be displayed in this ThreddsBrowser. 
-	 */
-	public LocationSelector(ThreddsBrowser tBrowser) {
-		if ( tBrowser == null )
-			throw new NullPointerException("null ThreddsBrowser given to the LocationSelector constructor");
-		this.tBrowser = tBrowser;
-		savedLocations = null;
-		localBrowseDir = null;
-		extensionsString = null;
-	}
-
-	/**
-	 * Reset the default values in the browser to those given in the BrowserDefaults.
-	 * @param defs the BrowserDefaults to use; cannot be null
-	 */
-	public void resetDefaults(BrowserDefaults defs) {
-		// Set the saved locations
-		Collection<String> locations = defs.getLocationStrings();
-		if ( savedLocations == null ) {
-			savedLocations = new Vector<String>(locations);
-		}
-		else {
-			savedLocations.removeAllElements();
-			savedLocations.addAll(locations);
-		}
-
-		// Get the directory for the local directory file chooser 
-		localBrowseDir = defs.getLocalBrowseDir();
-
-		// Get the string of acceptable filename extensions for displayed datasets
-		extensionsString = defs.getExtensionsString();
-	}
-
-	/**
-	 * Save all the current settings of this ThreddsBrowser to prefs.
-	 */
-	public void savePreferences(PreferencesExt prefs) {
-		// Save the list of locations
-		if ( savedLocations != null )
-			BrowserDefaults.saveLocationsList(prefs, savedLocations);
-
-		// Save the default directory for the local directory file chooser
-		if ( localBrowseDir != null )
-			BrowserDefaults.saveLocalBrowseDir(prefs, localBrowseDir);
-
-		// Save the standard String of extensions
-		if ( extensionsString != null )
-			BrowserDefaults.saveExtensionsString(prefs, extensionsString);
-	}
-
-	/**
-	 * Request a new location to be displayed in the associated ThreddsBrowser.
-	 * If args is not null and not empty, uses args[0] as the new location to be shown;
-	 * otherwise, brings up a dialog prompting the user to select a new location.
-	 * The location can be a URI string, URL string, or local directory pathname.
-	 * If the location is a local directory, the user will then be prompted for the
-	 * filename extensions of datasets to display.
-	 */
-	public void selectLocation(String [] args) {
-		// Get the location to be shown from the arguments, if given
-		String location = null;
-		if ( (args != null) && (args.length > 0) ) {
-			location = args[0].trim();
-			if ( location.isEmpty() )
-				location = null;
-		}
-
-		// If arguments not given or the first argument is blank, prompt the user for the location
-		if ( location == null ) {
-			LocationSelectorDialog selectorDialog = new LocationSelectorDialog(tBrowser, savedLocations, localBrowseDir);
-			location = selectorDialog.selectLocation();
-			selectorDialog.dispose();
-		}
-		// Just return if user canceled out of the dialog
-		if ( location == null ) 
-			return;
-
-		// Add/move this location to the top of the saved list.
-		if ( savedLocations == null )
-			savedLocations = new Vector<String>();
-		else
-			savedLocations.remove(location);
-		savedLocations.add(0, location);
-
-		// Create a URI from the given location string
-		URI uri;
-		try {
-			uri = new URI(location);
-		} catch (URISyntaxException e) {
-			// If problems, assume this is a local file pathname
-			File locFile = new File(location);
-			uri = locFile.toURI();
-		}
-
-		// Check if local directory or a Thredds server
-		String scheme = uri.getScheme();
-		if ( (scheme == null) || "file".equals(scheme) ) {
-			// Save this new default location for the local file browser
-			localBrowseDir = new File(uri.getPath());
-			// Get the filename extensions of datasets in this local directory
-			String newExtensions = JOptionPane.showInputDialog(tBrowser, "Show datasets with the filename extension\n" +
-															   "(give none to show all files):", extensionsString);
-			// Just return if user canceled out of the dialog
-			if ( newExtensions == null )
-				return;
-			// Clean and save the new extensions
-			Collection<String> extsColl = BrowserDefaults.parseExtensionsString(newExtensions);
-			extensionsString = BrowserDefaults.createExtensionsString(extsColl);
-			// Show the datasets in this local directory
-			tBrowser.showLocalLocation(localBrowseDir, new ExtensionFileFilter(extsColl));
-		}
-		else {
-			// Show the datasets from this Thredds server 
-			tBrowser.showThreddsServerLocation(location);
-		}
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelectorDialog.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelectorDialog.java
deleted file mode 100644
index 732d832..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelectorDialog.java
+++ /dev/null
@@ -1,404 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.io.File;
-import java.util.Vector;
-
-import javax.swing.Box;
-import javax.swing.ButtonGroup;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JDialog;
-import javax.swing.JFileChooser;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JSeparator;
-import javax.swing.JTextField;
-import javax.swing.WindowConstants;
-
-/**
- * Dialog for selecting a location to display in a ThreddsBrowser.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocationSelectorDialog extends JDialog implements ActionListener, FocusListener {
-	private static final long serialVersionUID = 5072476287316578226L;
-
-	/** Radio button for using the saved locations combo box */
-	private JRadioButton savedLocsButton;
-	/** Combo box of saved locations */
-	private JComboBox savedLocsComboBox;
-	/** Radio button for using the new location text field */
-	private JRadioButton newLocButton;
-	/** Text field for entering a new location */
-	private JTextField newLocTextField;
-	/** Radio button for selecting the root of a local directory tree */
-	private JRadioButton localDirTreeButton;
-	/** Select button to dismiss the dialog, using the selected location */
-	private JButton selectButton;
-	/** Cancel button to dismiss the dialog without selecting a location */
-	private JButton cancelButton;
-	/** Last radio button selected */
-	private JRadioButton lastSelectedRadioButton;
-	/** Default for the local directory file selector */
-	private File localBrowseDir;
-
-	/**
-	 * Creates, but does not bring up, a LocationSelectorDialog with the given parameters.
-	 * Use the selectLocation method to bring up the dialog and retrieve the location to use.
-	 * @param parent create the dialog in the Frame for this component; can be null.
-	 * @param savedLocations use these locations for the drop-down list of saved locations; 
-	 * can be null or empty.
-	 * @param localBrowseDir use this directory as the default root of the local 
-	 * directory tree; can be null.
-	 */
-	public LocationSelectorDialog(Component parent, Vector<String> savedLocations, File localBrowseDir) {
-		super(JOptionPane.getFrameForComponent(parent), "Select a Location to Display", true);
-		this.localBrowseDir = localBrowseDir;
-
-		setLayout(new GridBagLayout());
-		GridBagConstraints gbc = new GridBagConstraints();
-		gbc.anchor = GridBagConstraints.NORTHWEST;
-
-		// Label for the radio buttons
-		gbc.gridx = 0;     gbc.gridy = 0;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-		gbc.weightx = 0.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.NONE;
-		gbc.insets = new Insets(10,10,10,10);
-		add(new JLabel("Select a location to display in the browser:"), gbc);
-
-		// Radio button for the drop-down list of saved locations
-		savedLocsButton = new JRadioButton("Saved locations:");
-	    savedLocsButton.setFocusPainted(false);
-	    savedLocsButton.addActionListener(this);
- 		gbc.gridx = 0;     gbc.gridy = 1;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-		gbc.weightx = 0.0; gbc.weighty = 1.0;
-		gbc.fill = GridBagConstraints.VERTICAL;
-		gbc.insets = new Insets(6,10,6,5);
-		add(savedLocsButton, gbc);
-
-		// JComboBox of the saved locations
-		if ( savedLocations != null )
-			savedLocsComboBox = new JComboBox(savedLocations);
-		else
-			savedLocsComboBox = new JComboBox();
-		savedLocsComboBox.setEditable(false);
-		savedLocsComboBox.addActionListener(this);
-		savedLocsComboBox.addFocusListener(this);
-		gbc.gridx = 1;     gbc.gridy = 1;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-		gbc.weightx = 1.0; gbc.weighty = 1.0;
-		gbc.fill = GridBagConstraints.BOTH;
-		gbc.insets = new Insets(5,5,5,10);
-		add(savedLocsComboBox, gbc);
-
-		// Radio button for entering a new location in a TextField
-		newLocButton = new JRadioButton("New location:");
-	    newLocButton.setFocusPainted(false);
-	    newLocButton.addActionListener(this);
-		gbc.gridx = 0;     gbc.gridy = 2;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-		gbc.weightx = 0.0; gbc.weighty = 1.0;
-		gbc.fill = GridBagConstraints.VERTICAL;
-		gbc.insets = new Insets(5,10,5,5);
-		add(newLocButton, gbc);
-
-		// JTextField to enter a new location
-		newLocTextField = new JTextField(40);
-		newLocTextField.addFocusListener(this);
-		gbc.gridx = 1;     gbc.gridy = 2;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-		gbc.weightx = 1.0; gbc.weighty = 1.0;
-		gbc.fill = GridBagConstraints.BOTH;
-		gbc.insets = new Insets(5,5,5,10);
-		add(newLocTextField, gbc);
-
-		// Radio button to select the root directory of a local directory tree
-		localDirTreeButton = new JRadioButton("Find a local directory to be the root of a tree of datasets ...");
-	    localDirTreeButton.setFocusPainted(false);
-	    localDirTreeButton.addActionListener(this);
-		gbc.gridx = 0;     gbc.gridy = 3;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-		gbc.weightx = 1.0; gbc.weighty = 1.0;
-		gbc.fill = GridBagConstraints.BOTH;
-		gbc.insets = new Insets(5,10,5,10);
-		add(localDirTreeButton, gbc);
-
-		// Group these radio buttons
-		ButtonGroup radioGroup = new ButtonGroup();
-		radioGroup.add(savedLocsButton);
-		radioGroup.add(newLocButton);
-		radioGroup.add(localDirTreeButton);
-
-		// Separator between the radio buttons and the select/cancel buttons
-		gbc.gridx = 0;     gbc.gridy = 4;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-		gbc.weightx = 1.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(5,0,5,0);
-		add(new JSeparator(), gbc);
-
-		// Create a horizontal panel with Select and Cancel buttons equally spaced
-		JPanel horizPanel = new JPanel(new GridLayout(1,0));
-        // Horizontal space
-        horizPanel.add(Box.createHorizontalGlue());
-        // Select button
-        selectButton = new JButton("Select");
-        selectButton.setFocusPainted(false);
-        selectButton.addActionListener(this);
-        horizPanel.add(selectButton);
-        // Horizontal space
-        horizPanel.add(Box.createHorizontalGlue());
-        // Cancel button
-        cancelButton = new JButton("Cancel");
-        cancelButton.setFocusPainted(false);
-        cancelButton.addActionListener(this);
-        horizPanel.add(cancelButton);
-        // Horizontal space
-        horizPanel.add(Box.createHorizontalGlue());
-
-        // Add the horizontal panel
-		gbc.gridx = 0;     gbc.gridy = 5;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-		gbc.weightx = 1.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(5,10,10,10);
-        add(horizPanel, gbc);
-
-       // Final touches to the dialog
-        getRootPane().setDefaultButton(selectButton);
-        pack();
-        setLocationRelativeTo(parent);
-
-        // Treat the dialog close ("X") button the same as the cancel button
-        setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		addWindowListener(new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent evt) {
-				cancelButton.doClick();
-			}
-		});
-
-	}
-
-	/**
-	 * Display this LocationSelectorDialog and retrieve the location to use.
-	 * @return the selected location as a trimmed, non-empty String, 
-	 * or null if the user canceled the dialog.
-	 */
-	public String selectLocation() {
-		// Set the saved locations radio button as the default
-		savedLocsButton.doClick();
-		
-		// Because this dialog is modal, the following will block 
-		// (but still allow event processing) until this dialog is dismissed
-		setVisible(true);
-
-		// Get the value associated with the last selected radio button
-		String selectedLocation = null;
-		if ( lastSelectedRadioButton == savedLocsButton ) {
-			// Get the location from the saved locations combo box
-			selectedLocation = (String) savedLocsComboBox.getSelectedItem();
-		}
-		else if ( lastSelectedRadioButton == newLocButton ) {
-			// Get the location from the new location text field
-			selectedLocation = newLocTextField.getText();
-		}
-		else if ( lastSelectedRadioButton == localDirTreeButton ) {
-			// Create a file chooser opened to the default local directory
-			JFileChooser chooser = new JFileChooser(localBrowseDir);
-
-			// Customize the file chooser for directories
-			chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
-			chooser.setDialogTitle("Directory to be Root of a Local Dataset Tree");
-			chooser.setApproveButtonToolTipText("Use the selected directory as the root of a local dataset tree");
-
-			// Ugly hack to rename the label "File Name:" to "Selected Dir:" and 
-			// to get rid of the file filter panel with the label "Files of Type:".
-			// This will fail in locales that do not use exactly these strings
-			// or if these components are not nested in JPanels.
-			// More stuff might be removed if the file filter label and combo box 
-			// are not in their own JPanel.
-			for ( Component comp : chooser.getComponents() ) {
-				checkComponentForFileLabel(comp);
-			}
-
-			// Get the selected directory
-			if ( chooser.showDialog(this, "Use Selected Dir") == JFileChooser.APPROVE_OPTION ) {
-				localBrowseDir = chooser.getSelectedFile();
-				selectedLocation = localBrowseDir.getPath();
-			}
-		}
-
-		// Trim the location; if blank, set to null
-		if ( selectedLocation != null ) {
-			selectedLocation = selectedLocation.trim();
-			if ( selectedLocation.isEmpty() )
-				selectedLocation = null;
-		}
-
-		// Return the selected location, which will be null if a dialog was canceled
-		return selectedLocation;
-	}
-
-	/**
-	 * If comp is a JLabel with text "File Name:", change the text to "Selected Dir:";
-	 * if comp is a JLabel with text "Files of Type:", remove the JPanel that contains
-	 * this component from it's JPanel; otherwise, if comp is a JPanel, call this 
-	 * function on each of its components.
-	 */
-	private int checkComponentForFileLabel(Component comp) {
-		if ( JLabel.class.isInstance(comp) ) {
-			JLabel label = (JLabel) comp;
-			if ( "File Name:".equals(label.getText()) ) {
-				// Rename this label and continue on
-				label.setText("Selected Dir:");
-			}
-			else if ( "Files of Type:".equals(label.getText()) ) {
-				// This is the file filter label
-				return 1;
-			}
-		}
-		else if ( JPanel.class.isInstance(comp) ) {
-			JPanel panel = (JPanel) comp;
-			for ( Component panelComp : panel.getComponents() ) {
-				int level = checkComponentForFileLabel(panelComp);
-				if ( level == 2 ) {
-					// Remove this panel component (which contains the file filter label) from this panel
-					panel.remove(panelComp);
-					return 0;
-				}
-				if ( level == 1 ) {
-					// This is the panel containing the file filter label
-					return 2;
-				}
-			}
-		}
-		return 0;
-	}
-
-	/**
-	 * If from a radio button, records this currently selected radio button.
-	 * If from a component associated with a radio button, makes sure the associated
-	 * radio button is selected.
-	 * If from the select button, closes this dialog.
-	 * If from the cancel button, sets the currently selected radio button to null 
-	 * and closes this dialog. 
-	 */
-	@Override
-	public void actionPerformed(ActionEvent evt) {
-		Object src = evt.getSource();
-		if ( src == savedLocsButton ) {
-			// Record that the saved locations radio button was selected
-			lastSelectedRadioButton = savedLocsButton;
-		}
-		else if ( src == newLocButton ) {
-			// Record that the new location radio button was selected
-			lastSelectedRadioButton = newLocButton;
-		}
-		else if ( src == localDirTreeButton ) {
-			// Record that the local directory tree radio button was selected
-			lastSelectedRadioButton = localDirTreeButton;
-		}
-		else if ( src == savedLocsComboBox ) {
-			// Put the selected location into the new location text field
-			String location = (String) savedLocsComboBox.getSelectedItem();
-			newLocTextField.setText(location);
-			// Make sure the saved locations radio button is selected
-			if ( lastSelectedRadioButton != savedLocsButton )
-				savedLocsButton.doClick();
-		}
-		else if ( src == selectButton ) {
-			// Close the dialog so selectLocation can proceed,
-			// leaving lastActionCommand as-is to indicate how to proceed.
-			setVisible(false);
-		}
-		else if ( src == cancelButton ) {
-			// Set lastSelectedRadioButton to indicate the dialog was canceled
-			// and close the dialog so selectLocation can proceed.
-			lastSelectedRadioButton = null;
-			setVisible(false);
-		}
-		else {
-			System.out.println("unhandled action event: " + evt);
-			System.out.println("coming from: " + src);
-		}
-	}
-
-	/**
-	 * Makes sure the radio button associated with the component gaining focus is selected.
-	 */
-	@Override
-	public void focusGained(FocusEvent evt) {
-		Object src = evt.getSource();
-		if ( src == newLocTextField ) {
-			// Make sure the new location radio button is selected
-			if ( lastSelectedRadioButton != newLocButton )
-				newLocButton.doClick();
-		}
-		else if ( src == savedLocsComboBox ) {
-			// Make sure the saved locations radio button is selected
-			if ( lastSelectedRadioButton != savedLocsButton )
-				savedLocsButton.doClick();
-		}
-		else {
-			System.out.println("unhandled focusGained event: " + evt);
-			System.out.println("coming from: " + src);
-		}
-	}
-
-	/**
-	 * Does nothing.
-	 */
-	@Override
-	public void focusLost(FocusEvent evt) {
-		; // don't care
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowser.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowser.java
deleted file mode 100644
index 3a7f2cb..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowser.java
+++ /dev/null
@@ -1,606 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.net.URI;
-import java.util.List;
-
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingConstants;
-import javax.swing.SwingUtilities;
-import javax.swing.event.HyperlinkEvent;
-import javax.swing.event.HyperlinkListener;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-
-import thredds.catalog.InvAccess;
-import thredds.catalog.InvCatalogImpl;
-import thredds.catalog.InvDatasetImpl;
-import thredds.catalog.ui.CatalogTreeView;
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Creates a THREDDS catalog browser for simple selection of a dataset.
- * Uses a UCAR/Unidata CatalogTreeView to do much of the work.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class ThreddsBrowser extends JPanel {
-	private static final long serialVersionUID = -6448720995067592662L;
-
-	/** Default locations environment variable - used for reset */
-	private String defLocsEnvName;
-
-	/**	Original BrowserDefaults - used for reset */
-	private BrowserDefaults initialDefaults;
-
-	/** JLabel showing the currently displayed location */
-	private JLabel locationLabel;
-
-	/** Tree view of the catalog or file system */
-	private CatalogTreeView treeViewer;
-
-	/** Display of information on the selected dataset */
-	private HTMLViewer htmlViewer;
-
-	/** JSplitPane containing treeViewer and htmlViewer */
-	private JSplitPane splitPanel;
-
-	/** The "USE" button */
-	private JButton useButton;
-
-	/** The "Cancel" button */
-	private JButton cancelButton;
-
-	/** Use for location selection preferences and dialog */
-	private LocationSelector locationSelector;
-
-	/** Current selected dataset URL */
-	private String datasetName;
-
-	/** JLabel displaying the currently selected dataset */
-	private JLabel datasetLabel;
-
-	/**
-	 * Create a THREDDS catalog browser for simple selection of a dataset.
-	 * @param prefs the default preference settings for this ThreddsBrowers; 
-	 * @param defaultLocationsEnvName the name of the locations environment variable 
-	 * whose value is a space-separated list of possibly-quoted locations.  May be 
-	 * null.  These locations, if not already given in prefs, will appear in 
-	 * order at the bottom of the drop-down list.  
-	 */
-	public ThreddsBrowser(PreferencesExt prefs, String defaultLocationsEnvName) {
-		// Get the defaults
-		defLocsEnvName = defaultLocationsEnvName;
-		initialDefaults = new BrowserDefaults(prefs, defLocsEnvName);
-
-		// Use a grid bag layout in this JPanel
-		setLayout(new GridBagLayout());
-		GridBagConstraints gbc = new GridBagConstraints();
-		gbc.anchor = GridBagConstraints.NORTHWEST;
-
-		// Intro label for the location
-		JLabel locationIntroLabel = new JLabel("Contents of location:");
-		gbc.gridx = 0;     gbc.gridy = 0;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-	    gbc.weightx = 0.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(15,10,10,2);
-		add(locationIntroLabel, gbc);
-		
-		// JLabel showing the currently displayed location
-		locationLabel = new JLabel(" ", SwingConstants.LEFT);
-		gbc.gridx = 2;     gbc.gridy = 0;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-	    gbc.weightx = 1.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(15,2,10,5);
-		add(locationLabel, gbc);
-
-		// Change location button to open LocationSelectorDialog
-		JButton changeLocationButton = new JButton("Change Location...");
-		changeLocationButton.setFocusPainted(false);
-		changeLocationButton.setToolTipText("Select a different location to display below");
-		gbc.gridx = 3;     gbc.gridy = 0;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-	    gbc.weightx = 0.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(10,5,5,10);
-		add(changeLocationButton, gbc);
-
-		// CatalogTreeView for viewing the catalog or directory tree
-		treeViewer = new CatalogTreeView();
-
-		// HTMLViewer displaying information on the selected dataset
-		htmlViewer = new HTMLViewer();
-
-	    // JSplitPane containing the above treeViewer on the left and htmlViewerScrollPane on the right
-	    splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, treeViewer, htmlViewer);
-		gbc.gridx = 0;     gbc.gridy = 1;
-		gbc.gridwidth = 5; gbc.gridheight = 1;
-	    gbc.weightx = 1.0; gbc.weighty = 1.0;
-		gbc.fill = GridBagConstraints.BOTH;
-		gbc.insets = new Insets(5,10,5,10);
-		add(splitPanel, gbc);
-
-		// USE button to output the current dataset and close 
-		useButton = new JButton("Use dataset:");
-		useButton.setFocusPainted(false);
-		useButton.setToolTipText("Use the selected dataset and exit this browser");
-		gbc.gridx = 0;     gbc.gridy = 2;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-	    gbc.weightx = 0.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(5,10,10,2);
-		add(useButton, gbc);
-
-		// JLabel with the current selected dataset name
-		datasetName = " ";
-		datasetLabel = new JLabel(datasetName, SwingConstants.LEFT);
-		datasetLabel.setToolTipText("The currently selected dataset");
-		gbc.gridx = 1;     gbc.gridy = 2;
-		gbc.gridwidth = 2; gbc.gridheight = 1;
-	    gbc.weightx = 1.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(10,2,15,5);
-		add(datasetLabel, gbc);
-
-		// Reset button to reset the default settings
-		JButton resetButton = new JButton("Reset");
-		resetButton.setFocusPainted(false);
-		resetButton.setToolTipText("Reset this browser with default settings");
-		gbc.gridx = 3;     gbc.gridy = 2;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-	    gbc.weightx = 0.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(5,5,10,5);
-		add(resetButton, gbc);
-		
-		// Cancel button to close without output of a dataset name
-		cancelButton = new JButton("Cancel");
-		cancelButton.setFocusPainted(false);
-		cancelButton.setToolTipText("Exit this browser without designating a dataset to use");
-		gbc.gridx = 4;     gbc.gridy = 2;
-		gbc.gridwidth = 1; gbc.gridheight = 1;
-	    gbc.weightx = 0.0; gbc.weighty = 0.0;
-		gbc.fill = GridBagConstraints.HORIZONTAL;
-		gbc.insets = new Insets(5,5,10,10);
-		add(cancelButton, gbc);
-
-		// Create the location selector for this browser
-		locationSelector = new LocationSelector(this);
-
-		// Set the defaults
-		updateLocationLabel(null);
-		resetDefaults(initialDefaults);
-
-		// Listen for double clicks in the CatalogTreeView
-		treeViewer.addPropertyChangeListener(new PropertyChangeListener() {
-			@Override
-			public void propertyChange(PropertyChangeEvent e) {
-				String propName = e.getPropertyName();
-				if ( "Dataset".equals(propName) || "File".equals(propName) ) {
-					// Second click of a double-click on a dataset or file name
-					useButton.doClick();
-				}
-			}
-		});
-		// Listen for selection changes (mouse clicks or arrow key presses)
-		treeViewer.getJTree().addTreeSelectionListener(new TreeSelectionListener() {
-			@Override
-			public void valueChanged(TreeSelectionEvent e) {
-				selectDataset();
-			}
-		});
-
-		// Listen for hyperlink selections in the htmlViewer
-		htmlViewer.addHyperlinkListener(new HyperlinkListener() {
-			@Override
-			public void hyperlinkUpdate(HyperlinkEvent e) {
-				if ( e.getEventType() == HyperlinkEvent.EventType.ACTIVATED ) {
-					// Don't bother dealing with frames
-					try {
-						htmlViewer.setPage(e.getURL());
-					} catch (Exception exc) {
-						;
-					}
-				}
-			}
-		});
-
-		// Listen for Change Location... button presses
-		changeLocationButton.addActionListener(new ActionListener() {
-			@Override
-			public void actionPerformed(ActionEvent e) {
-				locationSelector.selectLocation(null);
-			}
-		});
-
-		// Listen for Reset button presses
-		resetButton.addActionListener(new ActionListener() {
-			@Override
-			public void actionPerformed(ActionEvent e) {
-				// Ask which settings to return to
-				String[] resetOptions = {"start-up settings", "default settings"};
-				String result = (String) JOptionPane.showInputDialog(ThreddsBrowser.this, "Reset to: ",
-												"Reset Settings", JOptionPane.INFORMATION_MESSAGE, null, 
-												resetOptions, resetOptions[0]);
-				if ( resetOptions[0].equals(result) ) {
-					// start-up settings - use the defaults created in the constructor
-					resetDefaults(initialDefaults);
-				}
-				else if ( resetOptions[1].equals(result) ) {
-					// default settings - use defaults from not using a XMLStore/PreferencesExt
-					resetDefaults(new BrowserDefaults(null, defLocsEnvName));
-				}
-			}
-		});
-	}
-
-	/**
-	 * Forwards the arguments to this browser's {@link LocationSelector#selectLocation} method
-	 * @param args the arguments; may be null or empty 
-	 */
-	public void selectLocation(String[] args) {
-		locationSelector.selectLocation(args);
-	}
-
-	/**
-	 * Display the THREDDS server catalog at the given URI.
-	 * @param locationURI the URI of the THREDDS server catalog
-	 */
-	public void showThreddsServerLocation(String locationString) {
-		// Update the location displayed in the browser and clear the viewers
-		clearViewers();
-		updateLocationLabel(locationString);
-
-		// Display the location in the tree viewer
-		treeViewer.setCatalog(locationString);
-	}
-
-	/**
-	 * Create and display a catalog of the given local directory.
-	 * Before creating the catalog, a dialog is opened requesting 
-	 * the user for filename extensions of datasets to display.
-	 * @param localDir the local directory to display
-	 * @param datasetFilter show only files that pass this filter; 
-	 * if null, all files are accepted
-	 */
-	public void showLocalLocation(File localDir, FileFilter datasetFilter) {
-		// Create the catalog for this directory
-		final LocalDirTreeScanMonitor scanMonitor;
-		try {
-			scanMonitor = new LocalDirTreeScanMonitor(this, localDir, datasetFilter);
-		} catch (IOException e) {
-			JOptionPane.showMessageDialog(this, "Unable to catalog " + localDir + "\n" + e.getMessage(), 
-										  "Unable to Catalog", JOptionPane.ERROR_MESSAGE);
-			return;
-		}
-		scanMonitor.addPropertyChangeListener(new PropertyChangeListener() {
-			@Override
-			public void propertyChange(PropertyChangeEvent evt) {
-				String propName = evt.getPropertyName();
-				if ( "Done".equals(propName) ) {
-					// Success - get the local directory tree root and the generated catalog
-					File rootDir = (File) evt.getOldValue();
-					InvCatalogImpl catalog = (InvCatalogImpl) evt.getNewValue();
-
-					// Update the location displayed in the browser and clear the viewers
-					clearViewers();
-					updateLocationLabel(rootDir.getPath());
-
-					// Display the catalog in the tree viewer
-					displayLocalCatalog(scanMonitor, catalog);
-				}
-				else if ( "Canceled".equals(propName) ) {
-					// Scan was canceled by the user
-					JOptionPane.showMessageDialog(ThreddsBrowser.this, "Scan canceled", 
-												  "Scan Canceled", JOptionPane.ERROR_MESSAGE);
-				}
-				else if ( "Died".equals(propName) ) {
-					// Scan threw an exception
-					Throwable cause = (Throwable) evt.getNewValue();
-					JOptionPane.showMessageDialog(ThreddsBrowser.this, "Scan died: " + cause.getMessage(), 
-												  "Scan Died", JOptionPane.ERROR_MESSAGE);
-				}
-			}
-		});
-		scanMonitor.runScan();
-	}
-
-	/**
-	 * Display the local directory tree catalog in treeViewer.  This is done in a separate thread in
-	 * case a very large directory tree is being displayed, which may take quite some time and would 
-	 * make the program appear to be frozen otherwise.
-	 * @param scanMonitor the monitor used to create the catalog to be displayed
-	 * (used for obtaining the number of entries in the catalog to determine whether to show a dialog)
-	 * @param catalog the catalog to be displayed
-	 */
-	private void displayLocalCatalog(LocalDirTreeScanMonitor scanMonitor, final InvCatalogImpl catalog) {
-		int numEntries = scanMonitor.getNumCatalogEntries();
-
-		// If not many entries, just update the treeViewer in this thread and be done with it
-		if ( numEntries < 4096 ) {
-			treeViewer.setCatalog(catalog);
-			return;
-		}
-
-		// Put up the modal "working" dialog running in a separate thread
-		final Thread dialogThread = new Thread(new Runnable() {
-			@Override
-			public void run() {
-				JOptionPane.showMessageDialog(ThreddsBrowser.this, "Please wait\n" +
-						                                           "Displaying the local directory tree\n" +
-						                                           "This dialog will go away when done\n" +
-						                                           "(Sorry, can't be canceled)", 
-											  "Displaying Local Directory Tree", JOptionPane.INFORMATION_MESSAGE);
-			}
-		});
-		dialogThread.start();
-
-		// Update the treeViewer in a separate thread
-		new Thread(new Runnable() {
-			@Override
-			public void run() {
-				treeViewer.setCatalog(catalog);
-				// Display done - kill the dialog
-				dialogThread.interrupt();
-			}
-		}).start();
-	}
-
-	/**
-	 * Updates the label of currently shown location.
-	 * @param location the new location; can be null or blank for no location given
-	 */
-	private void updateLocationLabel(String location) {
-		if ( (location == null) || location.trim().isEmpty() )
-			locationLabel.setText("(no location given)");
-		else
-			locationLabel.setText(location);
-	}
-
-	/**
-	 * Clears the shown location label, treeViewer and htmlViewer
-	 */
-	private void clearViewers() {
-		treeViewer.getJTree().setModel(new DefaultTreeModel(new DefaultMutableTreeNode(null, false)));
-		htmlViewer.clearPage();
-		updateLocationLabel(null);
-	}
-
-	/**
-	 * Set the currently selected dataset name and show information about it.
-	 */
-	private void selectDataset() {
-		// Get the dataset name
-		InvDatasetImpl dataset = (InvDatasetImpl) treeViewer.getSelectedDataset();
-
-		// Assign datasetName if the selected item is actually a dataset (has an access)
-		datasetName = " ";
-		if ( dataset != null ) {
-			List<InvAccess> accesses = dataset.getAccess();
-			if ( accesses.size() > 0 ) {
-				URI uri = accesses.get(0).getStandardUri();
-				String scheme = uri.getScheme();
-				if ( (scheme == null) || "file".equals(scheme) ) {
-					// for local datasets, get the path from the dataset ID
-					datasetName = dataset.getID();
-				}
-				else {
-					// for remote datasets, show the URI
-					datasetName = accesses.get(0).getStandardUrlName();
-				}
-			}
-		}
-
-		// Clear the info viewer so there is no mismatch while new info is being created
-		htmlViewer.clearPage();
-
-		// Show the new dataset name
-		datasetLabel.setText(datasetName);
-
-		// If actually a dataset, create content in the info viewer
-		if ( ! datasetName.trim().isEmpty() ) {
-			StringBuilder sbuff = new StringBuilder(2048);
-			InvDatasetImpl.writeHtmlDescription(sbuff, dataset, false, true, false, false, true);
-			htmlViewer.showHTMLBodyText(sbuff.toString());
-		}
-	}
-
-	/**
-	 * @return the name of the currently selected dataset, 
-	 * or null is there is no currently selected dataset. 
-	 */
-	public String getDatasetName() {
-		if ( datasetName.trim().isEmpty() )
-			return null;
-		return datasetName;
-	}
-
-	/**
-	 * Adds the given ActionListener to the "USE" button in the browser
-	 */
-	public void addUseActionListener(ActionListener actionListener) {
-		useButton.addActionListener(actionListener);
-	}
-
-	/**
-	 * Removes the given ActionListener from the "USE" button in the browser
-	 */
-	public void removeUseActionListener(ActionListener actionListener) {
-		useButton.removeActionListener(actionListener);
-	}
-
-	/**
-	 * Adds the given ActionListener to the "Cancel" button in the browser
-	 */
-	public void addCancelActionListener(ActionListener actionListener) {
-		cancelButton.addActionListener(actionListener);
-	}
-
-	/**
-	 * Removes the given ActionListener from the "Cancel" button in the browser
-	 */
-	public void removeCancelActionListener(ActionListener actionListener) {
-		cancelButton.removeActionListener(actionListener);
-	}
-
-	/**
-	 * Reset the default values in the browser to those given in the BrowserDefaults.
-	 * @param defs the BrowserDefaults to use; cannot be null
-	 */
-	public void resetDefaults(BrowserDefaults defs) {
-		// Reset the values in the location selector dialog
-		locationSelector.resetDefaults(defs);
-
-		// Set the split pane divider location
-	    splitPanel.setDividerLocation(defs.getDividerLocation());
-
-		// Clear the contents of the viewers
-		clearViewers();
-
-		// Clear the dataset name
-		datasetName = " ";
-		datasetLabel.setText(datasetName);
-
-		// Set the preferred size of the browser panel
-	    setPreferredSize(defs.getBrowserSize());
-	}
-
-	/**
-	 * Save all the current settings of this ThreddsBrowser to prefs.
-	 */
-	public void savePreferences(PreferencesExt prefs) {
-		// Save the location selector dialog settings
-		locationSelector.savePreferences(prefs);
-
-		// Save the divider location
-		BrowserDefaults.saveDividerLocation(prefs, splitPanel.getDividerLocation());
-
-		// Save the size of the browser panel
-		BrowserDefaults.saveBrowserSize(prefs, getSize());
-	}
-
-	/**
-	 * Creates the default filename for a ThreddsBrowser store file.
-	 * Creates any missing directories in this filename.  
-	 * @return the default filename, or null if unable to create
-	 * missing directories
-	 */
-	public static String createDefaultStoreFilename() {
-		String storeFilename = null;
-
-		try {
-			// First try Window desired location for application data stores
-			// APPDATA not likely to be defined on Unix systems
-			storeFilename = System.getenv("APPDATA");
-		    if ( storeFilename != null ) {
-		    	storeFilename += File.separator + "TMAP";
-		    }
-	    } catch (Exception e) {
-	    	;
-	    }
-
-	    if ( storeFilename == null ) {
-	    	// Now try in the user.home directory
-	    	try {
-	    		storeFilename = System.getProperty("user.home");
-		    	if ( storeFilename != null ) {
-		    		storeFilename += File.separator + ".tmap";
-		    	}
-	    	} catch (Exception e) {
-	    		;
-	    	}
-	    }
-
-	    if ( storeFilename == null ) {
-	    	// If all else fails, put it under the current working directory
-	    	storeFilename = ".tmap";
-	    }
-
-	    try {
-		    // Create any missing directory path for the store file
-	    	File storeDir = new File(storeFilename);
-	    	if ( ! storeDir.exists() ) {
-	    		if ( ! storeDir.mkdirs() ) {
-	    			throw new IOException();
-	    		}
-	    	}
-
-	    	// Add the store filename to the path
-	    	storeFilename += File.separator + "ThreddsBrowser.xml";
-	    } catch (Exception e) {
-			storeFilename = null;
-	    }
-
-	    return storeFilename;
-	}
-
-	/**
-	 * Starts the THREDDS catalog browser.  The first argument,
-	 * if given, is used as the initial catalog URL in the browser.
-	 */
-	public static void main(final String[] args) {
-		// Initialize the HTTPClient logger so that it won't complain
-		System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
-		System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
-		System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header", "fatal");
-		System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "fatal");
-
-		// Create the GUI in a separate thread managed by Swing
-        SwingUtilities.invokeLater(new Runnable() {
-        	@Override
-            public void run() {
-                ThreddsBrowserListener.createAndShowBrowser(args);
-            }
-        });
-	}
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowserListener.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowserListener.java
deleted file mode 100644
index 2dc7905..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowserListener.java
+++ /dev/null
@@ -1,234 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Point;
-import java.awt.Window;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.net.Authenticator;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-
-import opendap.dap.DConnect2;
-
-import org.apache.commons.httpclient.HttpClient;
-
-import thredds.ui.UrlAuthenticatorDialog;
-
-import ucar.nc2.dataset.NetcdfDataset;
-import ucar.nc2.stream.CdmRemote;
-import ucar.nc2.ui.WmsViewer;
-import ucar.nc2.util.net.HttpClientManager;
-import ucar.unidata.io.http.HTTPRandomAccessFile;
-import ucar.util.prefs.PreferencesExt;
-import ucar.util.prefs.XMLStore;
-
-/**
- * A listener for a ThreddsBrowser as well as the Window containing that Browser.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class ThreddsBrowserListener extends WindowAdapter implements ActionListener {
-
-	/** XMLStore key for a Point giving the location of the main Window given to the browser */
-	public static final String WINDOW_LOCATION = "WindowLocation";
-
-	/** Window containing the ThreddsBrowser to listener for WindowClosing events */
-	private Window mainWindow;
-
-	/** ThreddsBrowser to listen to for Action events */
-	private ThreddsBrowser tBrowser;
-
-	/** Whether or not to use the selected dataset name in the ThreddsBrowser when an Action event occurs */ 
-	private boolean useDataset;
-
-	/** XMLStore to save the Window Location before closing the Window from either Action or WindowClosing events */
-	private XMLStore givenStore;
-
-	/**
-	 * Create a Listener for Action events from a ThreddsBrowser and WindowClosing events from the
-	 * Window containing that ThreddsBrowser.  
-	 * <ul>
-	 * <li>Action event if useDataset is true: the dataset name is retrieved from tBrowser and 
-	 * printed as a "USE ..." String to System.out, and the windowClosing method is then called.
-	 * If no dataset name is selected in tBrowser, an error dialog is posted and no further action 
-	 * is taken.  
-	 * <li>Action event if useDataset is false: the windowClosing method is just called.
-	 * <li>WindowClosing events (and when the windowClosing method is called from Action events): 
-	 * the current location of mainWindow as well as the setting of tBrowser are saved to the file 
-	 * that is backing givenStore, the window is closed, and the 
-	 * application exits.
-	 * <ul>
-	 * @param mainWindow the Window containing tBrowser.
-	 * @param tBrowser the ThreddsBrowser to use.
-	 * @param useDataset whether to use the selected dataset from tBrowser.
-	 * @param givenStore the XMLStore used to save current settings.
-	 */
-	public ThreddsBrowserListener(Window mainWindow, ThreddsBrowser tBrowser, boolean useDataset,  XMLStore givenStore) {
-		if ( mainWindow == null )
-			throw new NullPointerException("null Window given to the ThreddsBrowserListener constructor");
-		if ( tBrowser == null )
-			throw new NullPointerException("null ThreddsBrowser given to the ThreddsBrowserListener constructor");
-		if ( givenStore == null )
-			throw new NullPointerException("null XMLStore given to the ThreddsBrowserListener constructor");
-		this.mainWindow = mainWindow;
-		this.tBrowser = tBrowser;
-		this.useDataset = useDataset;
-		this.givenStore = givenStore;
-	}
-
-	/**
-	 * If useDataset was true in the creation of this Listener, the dataset name is retrieved
-	 * from the ThreddsBrowser and printed as a "USE ..." to System.out and the application exits.
-	 * If no dataset name is selected in the ThreddsBrowser, an error dialog is posted and no 
-	 * further action is taken.
-	 * If useDataset was false, the application just exits.
-	 */
-	@Override
-	public void actionPerformed(ActionEvent e) {
-		if ( useDataset ) {
-			String datasetName = tBrowser.getDatasetName();
-			if ( datasetName == null ) {
-				JOptionPane.showMessageDialog(tBrowser, "No dataset is selected",
-											  "No Dataset Selected", JOptionPane.ERROR_MESSAGE);
-				return;
-			}
-			System.out.println("USE \"" + datasetName + "\"");
-			System.out.flush();
-		}
-		windowClosing(null);
-	}
-
-	/**
-	 * Saves the current location of the Window as well as the setting of the ThreddsBrowser
-	 * to the XMLStore used in the creation of this Listener.
-	 */
-	@Override
-	public void windowClosing(WindowEvent e) {
-		PreferencesExt prefs = givenStore.getPreferences();
-
-		// Save the location of main window
-        Point location = mainWindow.getLocation();
-        prefs.putBeanObject(WINDOW_LOCATION, location);
-
-        // Save the ThreddsBrowser's preferences
-		tBrowser.savePreferences(prefs);
-
-		// Save the store object to the original file
-		try {
-			givenStore.save();
-		} catch ( Exception exc ) {
-			; // don't care
-		}
-
-		// Close the window and exit the application
-		mainWindow.setVisible(false);
-		mainWindow.dispose();
-		System.exit(0);
-	}
-
-	/**
-	 * Creates and displays the ThreddsBrowser as well as initializes the 
-	 * HTTP client.  Any arguments given are passed on to the created
-	 * ThreddsBrowser selectLocation method.
-	 */
-	public static void createAndShowBrowser(final String[] args) {
-		// Create the window - leave the default close operation (HIDE_ON_CLOSE) 
-		// since we are providing a windowClosing event listener that calls System.exit
-		JFrame mainFrame = new JFrame("THREDDS Catalog Browser");
-		mainFrame.setLayout(new GridBagLayout());
-
-		// Get the default givenStore filename
-		String storeFilename = ThreddsBrowser.createDefaultStoreFilename();
-
-		// Open the givenStore of preferences
-		XMLStore store;
-		try {
-	    	store = XMLStore.createFromFile(storeFilename, null);
-	    } catch (Exception e) {
-	    	// Create a read-only empty givenStore
-			store = new XMLStore();
-	    }
-	    PreferencesExt prefs = store.getPreferences();
-
-	    // Create the ThreddsBrower and add it to mainFrame
-	    ThreddsBrowser tBrowser = new ThreddsBrowser(prefs, "FER_DATA_THREDDS");
-	    GridBagConstraints gbc = new GridBagConstraints();
-	    gbc.anchor = GridBagConstraints.NORTHWEST;
-	    gbc.gridx = 0;     gbc.gridy = 0;
-	    gbc.gridwidth = 1; gbc.gridheight = 1;
-	    gbc.weightx = 1.0; gbc.weighty = 1.0;
-	    gbc.fill = GridBagConstraints.BOTH;
-	    mainFrame.add(tBrowser, gbc);
-
-	    // Show the window
-		mainFrame.pack();
-		mainFrame.setVisible(true);
-
-		// Set the location of the main window
-		Point location = (Point) prefs.getBean(WINDOW_LOCATION, null);
-		if ( location == null ) {
-			location = new Point(50, 50);
-		}
-	    mainFrame.setLocation(location);
-
-	    // Add a listener for the Use Action events
-	    tBrowser.addUseActionListener(new ThreddsBrowserListener(mainFrame, tBrowser, true, store));
-
-	    // Add a listener for Cancel Action events and WindowClosing events 
-	    ThreddsBrowserListener cancelListener = new ThreddsBrowserListener(mainFrame, tBrowser, false, store);
-	    tBrowser.addCancelActionListener(cancelListener);
-		mainFrame.addWindowListener(cancelListener);
-
-		// Initialize the URL authenticator and HTTP client manager
-	    UrlAuthenticatorDialog provider = new UrlAuthenticatorDialog(mainFrame);
-	    Authenticator.setDefault(provider);
-	    HttpClient client = HttpClientManager.init(provider, "ThreddsBrowser");
-	    DConnect2.setHttpClient(client);
-	    HTTPRandomAccessFile.setHttpClient(client);
-	    CdmRemote.setHttpClient(client);
-	    NetcdfDataset.setHttpClient(client);
-	    WmsViewer.setHttpClient(client);
-
-	    // Pass the arguments on to the ThreddsBrowser's selectLocation method.
-	    // This brings up a LocationSelectorDialog if no arguments are given.
-	    tBrowser.selectLocation(args);
-	}
-
-}
diff --git a/threddsBrowser/toolsUI/toolsUI-4.1.jar b/threddsBrowser/toolsUI/toolsUI-4.1.jar
deleted file mode 100644
index 1c84548..0000000
Binary files a/threddsBrowser/toolsUI/toolsUI-4.1.jar and /dev/null differ
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestBrowserDefaults.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestBrowserDefaults.java
deleted file mode 100644
index c753ed8..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestBrowserDefaults.java
+++ /dev/null
@@ -1,263 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-import static org.junit.Assume.*;
-
-import gov.noaa.pmel.ferret.threddsBrowser.BrowserDefaults;
-
-import java.awt.Dimension;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-
-import org.junit.Test;
-
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Tests for {@link BrowserDefaults}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestBrowserDefaults {
-
-	/**
-	 * Test method for {@link BrowserDefaults#BrowserDefaults(PreferencesExt, String)}.
-	 */
-	@Test
-	public void testBrowserDefaults() {
-		// Test the (null,null) constructor
-		BrowserDefaults defs = new BrowserDefaults(null, null);
-		assertNotNull("BrowserDefaults(null,null)", defs);
-		Collection<String> locs = defs.getLocationStrings();
-		assertEquals("number of initial locations from (null,null)", 0, locs.size());
-		int defDividerLoc = defs.getDividerLocation();
-		assertTrue("divider location from (null,null) > 50", defDividerLoc > 50);
-		File localDir = defs.getLocalBrowseDir();
-		assertEquals("local browse directory from (null,null)", null, localDir);
-		String defExtsString = defs.getExtensionsString();
-		assertNotNull("extensions string from (null,null) not null", defExtsString);
-		Dimension defSize = defs.getBrowserSize();
-		assertNotNull("browser size from (null,null) not null", defSize);
-
-		// Test the constructor with an undefined environment variable
-		String envName = "JUNK498523851498";
-		String envVal = System.getenv(envName);
-		assertNull("made-up bizzare environment variable exists!", envVal);
-		defs = new BrowserDefaults(null, envName);
-		assertNotNull("BrowserDefaults(null," + envName + ")", defs);
-		locs = defs.getLocationStrings();
-		assertEquals("number of initial locations from (null," + envName + ")", 0, locs.size());
-		int dividerLoc = defs.getDividerLocation();
-		assertEquals("divider location from (null," + envName + ")", defDividerLoc, dividerLoc);
-		localDir = defs.getLocalBrowseDir();
-		assertEquals("local browse directory from (null," + envName + ")", null, localDir);
-		String extsString = defs.getExtensionsString();
-		assertEquals("extensions string from (null," + envName + ")", defExtsString, extsString);
-		Dimension size = defs.getBrowserSize();
-		assertEquals("browser size from (null," + envName + ")", defSize, size);
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#saveLocationsList(PreferencesExt, List<String>)}
-	 * and {@link BrowserDefaults#getLocationStrings()} without using an environment variable
-	 */
-	@Test
-	public void testSaveGetLocationStringsNoEnv() {
-		String[] locations = {"first", "second", "third", "fourth", "fifth"};
-		PreferencesExt prefs = new PreferencesExt(null, "");
-		BrowserDefaults.saveLocationsList(prefs, Arrays.asList(locations));
-		BrowserDefaults defs = new BrowserDefaults(prefs, null);
-		Collection<String> locsColl = defs.getLocationStrings();
-		assertEquals("number of locations", locations.length, locsColl.size());
-		int k = 0;
-		for (String loc : locsColl) {
-			assertEquals("location[" + k + "]", locations[k], loc);
-			k++;
-		}
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#saveLocationsList(PreferencesExt, List<String>)}
-	 * and {@link BrowserDefaults#getLocationStrings()} using the environment variable FER_DATA_THREDDS
-	 */
-	@Test
-	public void testSaveGetLocationStringsWithEnv() {
-		PreferencesExt prefs = new PreferencesExt(null, "");
-
-		// Use "FER_DATA_THREDDS as the environment variable to test (no System.setenv to create one)
-		String envName = "FER_DATA_THREDDS";
-		String envVal = System.getenv(envName);
-
-		// Following are not errors; just can't perform this test as expected
-		assumeNotNull(envVal);
-		assumeTrue( ! envVal.trim().isEmpty() );
-		assumeTrue( ! envVal.contains("\"") );
-		assumeTrue( ! envVal.contains("'") );
-
-		// Get the unique space-separated strings in the given order
-		LinkedHashSet<String> nameSet = new LinkedHashSet<String>(Arrays.asList(envVal.split("\\s+")));
-		ArrayList<String> nameList = new ArrayList<String>(nameSet);
-
-		// Get the locations from just using envName
-		BrowserDefaults defs = new BrowserDefaults(null, envName);
-		Collection<String> locsColl = defs.getLocationStrings();
-		assertEquals("number of locations from " + envName, nameList.size(), locsColl.size());
-		int numLocs = 0;
-		for (String location : locsColl) {
-			assertEquals("location[" + numLocs + "] from " + envName, nameList.get(numLocs), location);
-			numLocs++;
-		}
-
-		// Create a list of locations, one duplicating the last one from envName 
-		String myFirstLocation = "My silly first location";
-		String mySecondLocation = nameList.get(nameList.size() - 1);
-		ArrayList<String> prefLocs = new ArrayList<String>(2);
-		prefLocs.add(myFirstLocation);
-		prefLocs.add(mySecondLocation);
-
-		// Create a BrowserDefaults with this PreferenceExt and envName
-		BrowserDefaults.saveLocationsList(prefs, prefLocs);  // verify the old values are overwritten
-		defs = new BrowserDefaults(prefs, envName);
-		locsColl = defs.getLocationStrings();
-		assertEquals("number of locations from prefs and " + envName, nameList.size() + 1, locsColl.size());
-		numLocs = 0;
-		for (String location : locsColl) {
-			if ( numLocs == 0 )
-				assertEquals("location[0] from prefs and " + envName, myFirstLocation, location);
-			else if ( numLocs == 1 )
-				assertEquals("location[1] from prefs and " + envName, mySecondLocation, location);
-			else
-				assertEquals("location[" + numLocs + "] from prefs and " + envName, nameList.get(numLocs-2), location);
-			numLocs++;
-		}
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#saveDividerLocation(PreferencesExt, int)}
-	 * and {@link BrowserDefaults#getDividerLocation()}.
-	 */
-	@Test
-	public void testSaveGetDividerLocation() {
-		int loc = 789;
-		PreferencesExt prefs = new PreferencesExt(null, "");
-		BrowserDefaults.saveDividerLocation(prefs, loc);
-		BrowserDefaults defs = new BrowserDefaults(prefs, null);
-		assertEquals("saved divider location", loc, defs.getDividerLocation());
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#saveLocalBrowseDir(PreferencesExt, File)}
-	 * and {@link BrowserDefaults#getLocalBrowseDir()}.
-	 */
-	@Test
-	public void testSaveGetLocalBrowseDir() throws IOException {
-		File tmpdir = File.createTempFile("temp_", "_dir");
-		PreferencesExt prefs = new PreferencesExt(null, "");
-		BrowserDefaults.saveLocalBrowseDir(prefs, tmpdir);
-		BrowserDefaults defs = new BrowserDefaults(prefs, null);
-		assertEquals("saved local browse dir that is a file", null, defs.getLocalBrowseDir());
-		tmpdir.delete();
-		defs = new BrowserDefaults(prefs, null);
-		assertEquals("saved local browse dir that does not exist", null, defs.getLocalBrowseDir());
-		tmpdir.mkdir();
-		defs = new BrowserDefaults(prefs, null);
-		assertEquals("saved local browse dir that is a valid directory", tmpdir, defs.getLocalBrowseDir());
-		tmpdir.delete();
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#saveExtensionsString(PreferencesExt, String)}
-	 * and {@link BrowserDefaults#getExtensionsString()}.
-	 */
-	@Test
-	public void testSaveGetExtensionsString() {
-		String extsString = "this, that, and, the, other, thing";
-		PreferencesExt prefs = new PreferencesExt(null, "");
-		BrowserDefaults.saveExtensionsString(prefs, extsString);
-		BrowserDefaults defs = new BrowserDefaults(prefs, null);
-		assertEquals("saved extensions string", extsString, defs.getExtensionsString());
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#saveBrowserSize(PreferencesExt, Dimension)}
-	 * and {@link BrowserDefaults#getBrowserSize()}.
-	 */
-	@Test
-	public void testSaveGetBrowserSize() {
-		Dimension size = new Dimension(234, 567);
-		PreferencesExt prefs = new PreferencesExt(null, "");
-		BrowserDefaults.saveBrowserSize(prefs, size);
-		BrowserDefaults defs = new BrowserDefaults(prefs, null);
-		assertEquals("saved browser size", size, defs.getBrowserSize());
-	}
-
-	/**
-	 * Test method for {@link BrowserDefaults#parseExtensionsString(String)}
-	 * and {@link BrowserDefaults#createExtensionsString(Collection)}.
-	 */
-	@Test
-	public void testParseCreateExtensionsString() {
-		String extsString = "this, that, and, the, other";
-		String complicatedString = "  this  that;and , the  ,other  ; ";
-		String[] extsArray = extsString.split(", ");
-
-		// Try a single string of extensions
-		Collection<String> extsColl = BrowserDefaults.parseExtensionsString(extsString);
-		assertEquals("number of extensions from a simple string", extsArray.length, extsColl.size());
-		for (int k = 0; k < extsArray.length; k++)
-		   assertTrue("collection contains extension " + extsArray[k], extsColl.contains(extsArray[k]));
-		String newStr = BrowserDefaults.createExtensionsString(extsColl);
-		assertEquals("extensions string from collection", extsString, newStr);
-
-		// Try a complicated string
-		extsColl = BrowserDefaults.parseExtensionsString(complicatedString);
-		assertEquals("number of extensions from a complicated string", extsArray.length, extsColl.size());
-		for (int k = 0; k < extsArray.length; k++)
-		   assertTrue("collection contains extension " + extsArray[k], extsColl.contains(extsArray[k]));
-		newStr = BrowserDefaults.createExtensionsString(extsColl);
-		assertEquals("extensions string from collection", extsString, newStr);
-
-		// Should work fine with an empty string or empty collection
-		extsColl = BrowserDefaults.parseExtensionsString("");
-		assertEquals("number of extensions from an empty string", 0, extsColl.size());
-		newStr = BrowserDefaults.createExtensionsString(extsColl);
-		assertEquals("extensions string from empty collection", "", newStr);
-	}
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestExtensionFileFilter.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestExtensionFileFilter.java
deleted file mode 100644
index 3e5d2a9..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestExtensionFileFilter.java
+++ /dev/null
@@ -1,143 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-import gov.noaa.pmel.ferret.threddsBrowser.ExtensionFileFilter;
-
-import org.junit.Test;
-
-/**
- * Tests of {@link ExtensionFileFilter}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestExtensionFileFilter {
-
-	/**
-	 * Test method for {@link ExtensionFileFilter#ExtensionFileFilter()}.
-	 * @throws IOException 
-	 */
-	@Test
-	public void testExtensionFileFilter() throws IOException {
-		ExtensionFileFilter filter = new ExtensionFileFilter();
-		assertNotNull("null returned from empty constructor", filter);
-		assertEquals("size of filter set from empty constructor", 0, filter.size());
-
-		// Check that everything gets accepted
-		File tmpdir = File.createTempFile("test_", "_dir");
-		tmpdir.delete();
-		tmpdir.mkdir();
-		File afile = new File(tmpdir, "afile.txt");
-		afile.createNewFile();
-		File bfile = new File(tmpdir, "bfile.dat");
-		bfile.createNewFile();
-		File cfile = new File(tmpdir, "cfile");
-		cfile.createNewFile();
-		File subdir = new File(tmpdir, "subdir");
-		subdir.mkdir();
-
-		File[] contents = tmpdir.listFiles(filter);
-		assertEquals("number of filtered files", 4, contents.length);
-
-		subdir.delete();
-		cfile.delete();
-		bfile.delete();
-		afile.delete();
-		tmpdir.delete();
-	}
-
-	/**
-	 * Test method for {@link ExtensionFileFilter#ExtensionFileFilter(Set)}.
-	 * @throws IOException 
-	 */
-	@Test
-	public void testExtensionFileFilterSetOfString() throws IOException {
-		List<String> extList = Arrays.asList("txt", "doc", "txt");
-		ExtensionFileFilter filter  = new ExtensionFileFilter(extList);
-		assertNotNull("null returned from constructor with a List", filter);
-		assertEquals("size of filter with List constructor", 2, filter.size());
-
-		// Check that things are filter appropriately
-		File tmpdir = File.createTempFile("test_", "_dir");
-		tmpdir.delete();
-		tmpdir.mkdir();
-		File afile = new File(tmpdir, "afile.txt");
-		afile.createNewFile();
-		File bfile = new File(tmpdir, "bfile.dat");
-		bfile.createNewFile();
-		File cfile = new File(tmpdir, "cfile");
-		cfile.createNewFile();
-		File subdir = new File(tmpdir, "subdir");
-		subdir.mkdir();
-
-		File[] contents = tmpdir.listFiles(filter);
-		assertEquals("number of filtered files", 2, contents.length);
-
-		List<File> contentsList = Arrays.asList(contents);
-		assertTrue("file with listed extension accepted", contentsList.contains(afile));
-		assertFalse("file with unlisted extension accepted", contentsList.contains(bfile));
-		assertFalse("file with no extension accepted", contentsList.contains(cfile));
-		assertTrue("directory accepted", contentsList.contains(subdir));
-
-		subdir.delete();
-		cfile.delete();
-		bfile.delete();
-		afile.delete();
-		tmpdir.delete();
-	}
-
-	/**
-	 * Test method for {@link ExtensionFileFilter#accept(File)}.
-	 */
-	@Test
-	public void testAccept() {
-		ExtensionFileFilter filter  = new ExtensionFileFilter();
-		assertTrue("non-existant file with an extension using filer with no extensions", filter.accept(new File("afile.txt")));
-		assertTrue("non-existant file with no extension using filter with no extensions", filter.accept(new File("cfile")));
-
-		List<String> extList = Arrays.asList("txt", "doc");
-		filter  = new ExtensionFileFilter(extList);
-		assertTrue("file with listed extension", filter.accept(new File("afile.txt")));
-		assertFalse("file with unlisted extension", filter.accept(new File("bfile.dat")));
-		assertFalse("file with no extension using filter with extensions", filter.accept(new File("cfile")));
-	}
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanMonitor.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanMonitor.java
deleted file mode 100644
index 9707a96..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanMonitor.java
+++ /dev/null
@@ -1,197 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import gov.noaa.pmel.ferret.threddsBrowser.LocalDirTreeScanMonitor;
-
-import org.junit.Test;
-
-/**
- * Test of {@link LocalDirTreeScanMonitor}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestLocalDirTreeScanMonitor {
-
-	/**
-	 * Test method for {@link LocalDirTreeScanMonitor#truncatedPathname} with no parent directory
-	 */
-	@Test
-	public void testTruncatedPathnameNoParent() {
-		final String maxTruncName = "..." + File.separator + "pathname";
-		final String absFullName = File.separator + "absolute" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
-		final String partTruncAbsName = File.separator + "absolute" + File.separator + "..." + File.separator + "pathname";
-		final String relFullName = "relative" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
-		final String partTruncRelName = "relative" + File.separator + "..." + File.separator + "pathname";
-		final String simpleName = "simple";
-		final String shortName = File.separator + "a" + File.separator + "pathname";
-		final String complicatedName = File.separator + "an" + File.separator + "extra" + File.separator + "long"    + File.separator + "path"
-									 + File.separator + "to" + File.separator + "test"  + File.separator + "against" + File.separator + "pathname";
-		final String partTruncComplicatedName = File.separator + "an" + File.separator + "extra" + File.separator + "..." 
-									 + File.separator + "against" + File.separator + "pathname";
-
-		// Absolute paths
-		File f = new File(absFullName);
-		// No truncation
-		String name = LocalDirTreeScanMonitor.truncatedPathname(f, null, absFullName.length());
-		assertEquals("untruncated absolute pathname", absFullName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
-		assertEquals("max truncated absolute pathname", maxTruncName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, partTruncAbsName.length() + 5);
-		assertEquals("partially truncated absolute pathname", partTruncAbsName, name);
-
-		// Relative paths
-		f = new File(relFullName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, relFullName.length() + 30);
-		assertEquals("untruncated relative pathname", relFullName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
-		assertEquals("max truncated relative pathname", maxTruncName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, partTruncRelName.length());
-		assertEquals("partially truncated relative pathname", partTruncRelName, name);
-
-		// Just a name with no path
-		f = new File(simpleName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, simpleName.length());
-		assertEquals("untruncated simple name", simpleName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
-		assertEquals("max truncated simple name", simpleName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, simpleName.length() - 1);
-		assertEquals("partially truncated simple name", simpleName, name);
-
-		// Short pathname
-		f = new File(shortName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, shortName.length());
-		assertEquals("untruncated short name", shortName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
-		assertEquals("max truncated short name", shortName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, simpleName.length() - 1);
-		assertEquals("partially truncated short name", shortName, name);
-
-
-		// Name with many path components
-		f = new File(complicatedName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, complicatedName.length());
-		assertEquals("untruncated complicated pathname", complicatedName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
-		assertEquals("max truncated complicated pathname", maxTruncName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, null, partTruncComplicatedName.length() + 1);
-		assertEquals("partially truncated complicated pathname", partTruncComplicatedName, name);
-	}
-
-	/**
-	 * Test method for {@link LocalDirTreeScanMonitor#truncatedPathname} with no parent directory
-	 */
-	@Test
-	public void testTruncatedPathnameWithParent() {
-		final String maxTruncName = "..." + File.separator + "pathname";
-		final String absParentName = File.separator + "home" + File.separator + "parent";
-		final String absFullName = absParentName + File.separator + "absolute" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
-		final String relAbsFullName = "parent" + File.separator + "absolute" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
-		final String partTruncAbsName = "parent" + File.separator + "absolute" + File.separator + "..." + File.separator + "pathname";
-		final String relParentName = "home" + File.separator + "parent";
-		final String relFullName = relParentName + File.separator + "relative" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
-		final String relRelFullName = "parent" + File.separator + "relative" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
-		final String partTruncRelName = "parent" + File.separator + "..." + File.separator + "pathname";
-		final String simpleName = "simple";
-		final String shortName = File.separator + "a" + File.separator + "pathname";
-
-		// Absolute paths
-		File p = new File(absParentName);
-		File f = new File(absFullName);
-		// No truncation
-		String name = LocalDirTreeScanMonitor.truncatedPathname(f, p, absFullName.length());
-		assertEquals("untruncated absolute pathname", relAbsFullName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
-		assertEquals("max truncated absolute pathname", maxTruncName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, partTruncAbsName.length() + 5);
-		assertEquals("partially truncated absolute pathname", partTruncAbsName, name);
-
-		// Relative paths
-		p = new File(relParentName);
-		f = new File(relFullName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, relFullName.length() + 30);
-		assertEquals("untruncated relative pathname", relRelFullName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
-		assertEquals("max truncated relative pathname", maxTruncName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, partTruncRelName.length());
-		assertEquals("partially truncated relative pathname", partTruncRelName, name);
-
-		// Just a name with no path
-		f = new File(simpleName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, simpleName.length());
-		assertEquals("untruncated simple name", simpleName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
-		assertEquals("max truncated simple name", simpleName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, simpleName.length() - 1);
-		assertEquals("partially truncated simple name", simpleName, name);
-
-		// Short pathname
-		f = new File(shortName);
-		// No truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, shortName.length());
-		assertEquals("untruncated short name", shortName, name);
-		// Maximum truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
-		assertEquals("max truncated short name", shortName, name);
-		// Partial truncation
-		name = LocalDirTreeScanMonitor.truncatedPathname(f, p, simpleName.length() - 1);
-		assertEquals("partially truncated short name", shortName, name);
-	}
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanner.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanner.java
deleted file mode 100644
index a0a3fd2..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanner.java
+++ /dev/null
@@ -1,239 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-import gov.noaa.pmel.ferret.threddsBrowser.LocalDirTreeScanner;
-
-import org.junit.Test;
-
-import thredds.catalog.InvAccess;
-import thredds.catalog.InvCatalogImpl;
-import thredds.catalog.InvDataset;
-
-/**
- * Test of {@link LocalDirTreeScanner}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestLocalDirTreeScanner {
-
-	/**
-	 * Test method for {@link LocalDirTreeScanner#LocalDirTreeScanner(File)}.
-	 */
-	@Test
-	public void testLocalDirTreeScanner() throws IOException {
-		// Try constructor with null
-		try {
-			new LocalDirTreeScanner(null, null);
-			fail("constructor with null did not throw an exception");
-		} catch (NullPointerException e) {
-			;
-		}
-
-		// Try constructor with a file
-		File tmpdir = File.createTempFile("test_", "_tmpdir");
-		try {
-			new LocalDirTreeScanner(tmpdir, null);
-			fail("constructor with a file did not throw an exception");
-		} catch (IOException e) {
-			;
-		}
-
-		// Try constructor with directory name that does not exist
-		tmpdir.delete();
-		try {
-			new LocalDirTreeScanner(tmpdir, null);
-			fail("constructor with a directory that does not exist did not throw an exception");
-		} catch (IOException e) {
-			;
-		}
-
-		// Try constructor with a valid directory
-		tmpdir.mkdir();
-		LocalDirTreeScanner scanner = new LocalDirTreeScanner(tmpdir, null);
-		assertNotNull("constructor with a valid directory returned null", scanner);
-			
-		tmpdir.delete();
-	}
-
-	/**
-	 * Test method for {@link LocalDirTreeScanner#generateCatalog(FileFilter)}
-	 * and {@link LocalDirTreeScanner#getNumCatalogEntries()}.
-	 */
-	@Test
-	public void testGenerateCatalog() throws IOException, ExecutionException, InterruptedException {
-		// Create a directory tree
-		File tmpdir = File.createTempFile("test_", "_tmpdir");
-		tmpdir.delete();
-		tmpdir.mkdir();
-
-		File afile = new File(tmpdir, "a_file");
-		afile.createNewFile();
-
-		File zfile = new File(tmpdir, "z_file");
-		zfile.createNewFile();
-
-		File subdir = new File(tmpdir, "subdir");
-		subdir.mkdir();
-
-		File subfile = new File(subdir, "subfile");
-		subfile.createNewFile();
-
-		File asubfile = new File(subdir, "a_subfile");
-		asubfile.createNewFile();
-
-		// Create a scanner for this directory tree with no filter
-		LocalDirTreeScanner scanner = new LocalDirTreeScanner(tmpdir, null);
-		assertNotNull("constructor with a valid directory returned null", scanner);
-
-		// Try scanning with no filter
-		scanner.execute();
-		InvCatalogImpl catalog = scanner.get();
-		assertNotNull("generated catalog with null filter was null", catalog);
-
-		// Check the reported number of catalog entries 
-		assertEquals("number of catalog entries", 5, scanner.getNumCatalogEntries());
-
-		// Top-level dataset is the directory itself
-		List<InvDataset> datasets = catalog.getDatasets();
-		assertEquals("Number of first-level datasets", 1, datasets.size());
-
-		assertEquals("ID of first-level dataset", tmpdir.getPath(), datasets.get(0).getID());
-		List<InvAccess> access = datasets.get(0).getAccess();
-		assertEquals("Number of accesses for first-level dataset", 0, access.size());
-		assertEquals("Number of datasets under the first-level dataset", 3, datasets.get(0).getDatasets().size());
-
-		// Next level is the sorted contents of the directory
-		datasets = datasets.get(0).getDatasets();
-
-		assertEquals("ID of first second-level dataset", afile.getPath(), datasets.get(0).getID());
-		access = datasets.get(0).getAccess();
-		assertEquals("Number of accesses for first second-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the first second-level datset", 0, datasets.get(0).getDatasets().size());
-
-		assertEquals("ID of second second-level dataset", subdir.getPath(), datasets.get(1).getID());
-		access = datasets.get(1).getAccess();
-		assertEquals("Number of accesses for second second-level dataset", 0, access.size());
-		assertEquals("Number of datasets under the second second-level datset", 2, datasets.get(1).getDatasets().size());
-
-		assertEquals("ID of third second-level dataset", zfile.getPath(), datasets.get(2).getID());
-		access = datasets.get(2).getAccess();
-		assertEquals("Number of accesses for third second-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the third second-level datset", 0, datasets.get(2).getDatasets().size());
-
-		// Now the contents of subdir
-		datasets = datasets.get(1).getDatasets();
-		
-		assertEquals("ID of first third-level dataset", asubfile.getPath(), datasets.get(0).getID());
-		access = datasets.get(0).getAccess();
-		assertEquals("Number of accesses for first third-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the first third-level datset", 0, datasets.get(0).getDatasets().size());
-
-		assertEquals("ID of second third-level dataset", subfile.getPath(), datasets.get(1).getID());
-		access = datasets.get(1).getAccess();
-		assertEquals("Number of accesses for second third-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the second third-level datset", 0, datasets.get(1).getDatasets().size());
-
-		// Try scanning with a filter
-		scanner = new LocalDirTreeScanner(tmpdir, new FileFilter() {
-			@Override
-			public boolean accept(File pathname) {
-				// Accept all directories
-				if ( pathname.isDirectory() )
-					return true;
-				// Accept files with an underscore in their name
-				if ( pathname.getName().contains("_") )
-					return true;
-				// If made it here, don't accept it
-				return false;
-			}
-		});
-		assertNotNull("constructor with a valid directory returned null", scanner);
-		scanner.execute();
-		catalog = scanner.get();
-
-		// Check the reported number of catalog entries 
-		assertEquals("number of catalog entries", 4, scanner.getNumCatalogEntries());
-
-		// Top-level dataset is the directory itself
-		datasets = catalog.getDatasets();
-		assertEquals("Number of first-level datasets", 1, datasets.size());
-
-		assertEquals("ID of first-level dataset", tmpdir.getPath(), datasets.get(0).getID());
-		access = datasets.get(0).getAccess();
-		assertEquals("Number of accesses for first-level dataset", 0, access.size());
-		assertEquals("Number of datasets under the first-level dataset", 3, datasets.get(0).getDatasets().size());
-
-		// Next level is the sorted contents of the directory
-		datasets = datasets.get(0).getDatasets();
-
-		assertEquals("ID of first second-level dataset", afile.getPath(), datasets.get(0).getID());
-		access = datasets.get(0).getAccess();
-		assertEquals("Number of accesses for first second-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the first second-level datset", 0, datasets.get(0).getDatasets().size());
-
-		assertEquals("ID of second second-level dataset", subdir.getPath(), datasets.get(1).getID());
-		access = datasets.get(1).getAccess();
-		assertEquals("Number of accesses for second second-level dataset", 0, access.size());
-		assertEquals("Number of datasets under the second second-level datset", 1, datasets.get(1).getDatasets().size());
-
-		assertEquals("ID of third second-level dataset", zfile.getPath(), datasets.get(2).getID());
-		access = datasets.get(2).getAccess();
-		assertEquals("Number of accesses for third second-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the third second-level datset", 0, datasets.get(2).getDatasets().size());
-
-		// Now the contents of subdir
-		datasets = datasets.get(1).getDatasets();
-		
-		assertEquals("ID of first third-level dataset", asubfile.getPath(), datasets.get(0).getID());
-		access = datasets.get(0).getAccess();
-		assertEquals("Number of accesses for first third-level dataset", 1, access.size());
-		assertEquals("Number of datasets under the first third-level datset", 0, datasets.get(0).getDatasets().size());
-
-		asubfile.delete();
-		subfile.delete();
-		subdir.delete();
-		zfile.delete();
-		afile.delete();
-		tmpdir.delete();
-	}
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestThreddsBrowser.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestThreddsBrowser.java
deleted file mode 100644
index 4c3a971..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestThreddsBrowser.java
+++ /dev/null
@@ -1,65 +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. 
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import gov.noaa.pmel.ferret.threddsBrowser.ThreddsBrowser;
-
-import java.io.File;
-
-import org.junit.Test;
-
-/**
- * Tests for non-UI methods of {@link ThreddsBrowser}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestThreddsBrowser {
-
-	/**
-	 * Test method for {@link ThreddsBrowser#createDefaultStoreFilename()}.
-	 */
-	@Test
-	public void testCreateDefaultStoreFilename() {
-		String storeName = ThreddsBrowser.createDefaultStoreFilename();
-		assertNotNull("Default store name", storeName);
-		File storeFile = new File(storeName);
-		assertEquals("store filename", "ThreddsBrowser.xml", storeFile.getName());
-		File parentDir = storeFile.getParentFile();
-		assertTrue("Unexpected store file parent directory: " + parentDir.getName(), 
-				   "TMAP".equals(parentDir.getName()) || ".tmap".equals(parentDir.getName()));
-		assertTrue("Store file parent directory exists", parentDir.isDirectory());
-	}
-
-}

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



More information about the debian-science-commits mailing list